框架畫面分為上中下三層
由下面一個Grid控件完成布局
上層為頂部菜單區域
中層為子菜單和業務畫面部分
下層為狀態欄和版權信息區域

下面我們分別看一下這三個部分的生成邏輯
一:頂部菜單區域
XAML代碼如下:
頂部菜單分為三部分
從左向右依次是
歡迎信息(GRID)
頂部菜單(動態創建)
常用按鈕(StackPanel)
頂部菜單的容器是一個StackPanel
此容器有一個漸變的背景色,樣式代碼如下
此容器每個部分都有一個Rectangle來分割
此Rectangle也有個漸變的背景,代碼如下
常用按鈕的樣式如下:
動態創建頂部菜單的代碼如下
(大家先不要深究數據是怎么來的,在以后的章節咱們會講到數據交互的細節)
這里創建的HeadBtn是一個自定義的控件
(每個頂部菜單就是一個控件的實例)
該自定義控件XAML代碼如下:
注意,這里每個頂部菜單的ICO圖標不是動態的,朋友們,想讓他變成動態的就自己動手吧
為了實現美觀的效果
我為這個自定義控件定義了鼠標的滑入滑出事件
這些顏色的值,本應該作為資源放在樣式文件中,我這里也沒有做處理
二:底部狀態條區域
此處比較簡單
代碼如下:
1.我沒有做狀態信息的內容
2.版本信息應該通過Assambly獲取
三:中部區域
XAML代碼如下
其中Label控件顯示的為頂部菜單的標題,標志着當前選中的是哪個頂部菜單
ListBox為子菜單控件
TabControl為業務畫面區域
四:子菜單區域
子菜單樣式相對復雜些
樣式代碼如下
這些樣式主要是為了實現如下效果

子菜單數據綁定非常簡單
(頂部菜單的單擊事件將綁定子菜單)
代碼如下:
五:業務畫面區域
業務畫面的容器為TabControl
每個TabItem將承載一個業務畫面
主要是為TabItem增加關閉按鈕
XAML代碼如下:
這個關閉按鈕的樣式比較特殊
關閉按鈕樣式主要為了實現如下效果
(鼠標滑上,關閉按鈕背景變灰色)

按鈕的單擊事件如下