框架画面分为上中下三层
由下面一个Grid控件完成布局
上层为顶部菜单区域
中层为子菜单和业务画面部分
下层为状态栏和版权信息区域
下面我们分别看一下这三个部分的生成逻辑
一:顶部菜单区域
XAML代码如下:
顶部菜单分为三部分
从左向右依次是
欢迎信息(GRID)
顶部菜单(动态创建)
常用按钮(StackPanel)
顶部菜单的容器是一个StackPanel
此容器有一个渐变的背景色,样式代码如下
此容器每个部分都有一个Rectangle来分割
此Rectangle也有个渐变的背景,代码如下
常用按钮的样式如下:
动态创建顶部菜单的代码如下
(大家先不要深究数据是怎么来的,在以后的章节咱们会讲到数据交互的细节)
这里创建的HeadBtn是一个自定义的控件
(每个顶部菜单就是一个控件的实例)
该自定义控件XAML代码如下:
注意,这里每个顶部菜单的ICO图标不是动态的,朋友们,想让他变成动态的就自己动手吧
为了实现美观的效果
我为这个自定义控件定义了鼠标的滑入滑出事件
这些颜色的值,本应该作为资源放在样式文件中,我这里也没有做处理
二:底部状态条区域
此处比较简单
代码如下:
1.我没有做状态信息的内容
2.版本信息应该通过Assambly获取
三:中部区域
XAML代码如下
其中Label控件显示的为顶部菜单的标题,标志着当前选中的是哪个顶部菜单
ListBox为子菜单控件
TabControl为业务画面区域
四:子菜单区域
子菜单样式相对复杂些
样式代码如下
这些样式主要是为了实现如下效果
子菜单数据绑定非常简单
(顶部菜单的单击事件将绑定子菜单)
代码如下:
五:业务画面区域
业务画面的容器为TabControl
每个TabItem将承载一个业务画面
主要是为TabItem增加关闭按钮
XAML代码如下:
这个关闭按钮的样式比较特殊
关闭按钮样式主要为了实现如下效果
(鼠标滑上,关闭按钮背景变灰色)
按钮的单击事件如下