WPF MenuItem 四种角色分析
2014-02-27 21:33
274 查看
Menu
Menu的样式很简单,就是顶部的那个框,如下图
而其中的文字“文件”“图形”...是属于MenuItem的,要灵活使用MenuItem,就需要了解MenuItem.Role的作用
你们可别小看这几个东西,要研究清楚还是要费点时间的
MenuItem.Role是个只读属性,是系统根据当前样式来设置的,如果我们要完整的控制整个菜单的样式,那么这些样式都要实现,那我们就来理解上面分别属于那些部分
先说TopLevelHeader
TopLevelHeader就包括Header和Popup菜单,可以弹出菜单,但是不能绑定命令
而没有子级菜单和带有命令(其实是一样的,没有子级菜单,那么点击肯定是要执行一些操作的)如下
然后剩下的就是SubmenuHeader和SubmenuItem了,其实很容易区分
SubmenuHeader是有子菜单的,所有它的作用仅仅相当于一个分类,它的组成可以看成是Icon,Header,快捷键和三角形
而SubmenuItem就是具体要执行的命令,由一个勾选框和Header,快捷键组成,只要根据勾选情况显示和隐藏勾选标记即可。
现在明白了菜单中的这些角色,看样式就非常简单了
Demo:http://files.cnblogs.com/action98/WPF_Menu_MSDN_Sample.rar
Menu的样式很简单,就是顶部的那个框,如下图
而其中的文字“文件”“图形”...是属于MenuItem的,要灵活使用MenuItem,就需要了解MenuItem.Role的作用
TopLevelItem | 没有子菜单,直接执行命令 |
TopLevelHeader | 能够弹出子菜单 |
SubmenuItem | 没有子菜单,直接执行命令 |
SubmenuHeader | 能够弹出子菜单 |
MenuItem.Role是个只读属性,是系统根据当前样式来设置的,如果我们要完整的控制整个菜单的样式,那么这些样式都要实现,那我们就来理解上面分别属于那些部分
先说TopLevelHeader
TopLevelHeader就包括Header和Popup菜单,可以弹出菜单,但是不能绑定命令
而没有子级菜单和带有命令(其实是一样的,没有子级菜单,那么点击肯定是要执行一些操作的)如下
然后剩下的就是SubmenuHeader和SubmenuItem了,其实很容易区分
SubmenuHeader是有子菜单的,所有它的作用仅仅相当于一个分类,它的组成可以看成是Icon,Header,快捷键和三角形
而SubmenuItem就是具体要执行的命令,由一个勾选框和Header,快捷键组成,只要根据勾选情况显示和隐藏勾选标记即可。
现在明白了菜单中的这些角色,看样式就非常简单了
Demo:http://files.cnblogs.com/action98/WPF_Menu_MSDN_Sample.rar
相关文章推荐
- WPF:设置MenuItem多种不同状态图标
- 第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示
- 第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示
- 第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示
- CheckMenuItem
- 数据绑定以及Container.DataItem几种方式与用法分析
- 四种实时操作系统特性进行分析和比较
- CCMenuItemSprite 换按钮图片用initWithNormalSprite
- Linux kernel 分析之十五:kbuild系统-make menuconfig
- WPF 的 MVVM 的分析理解(一)
- cocos2dx基础篇(7)——菜单按钮CCMenu/CCMenuItem
- 深入分析JavaWeb Item13 -- jsp指令详解
- 深入分析JavaWeb Item14 -- jsp九大内置对象
- Cocos2d-x CCMenuItemSprite按钮图片旋转问题
- 深入分析WPF客户端读取高清图片卡以及缩略图的解决方法详解
- Struts-Menu角色权限的实例代码
- Android为Menu添加item及响应函数
- wpf ListBox,item两列不等高。
- memcached源码分析-----item过期失效处理以及LRU爬虫
- WPF TreeView 后台C#选中指定的Item, 需要遍历