wpf配置菜单栏
WPF 内建了两种菜单——Menu 和ContextMenu(上下文菜单)。
1. Menu
Menu 的项可以是任何东西,但是你应该使用MenuItem 以及Separator 对象。
<Menu x:Name="menu" Height="23.333" VerticalAlignment="Top">
<MenuItem Header="配置">
<MenuItem Header="_New..." IsCheckable="True"/>
<MenuItem Header="_Open..." InputGestureText="ctrl+o" />
<Separator />
<MenuItem Header="Sen_d To">
<MenuItem Header="Mail Recipient" />
<MenuItem Header="My Documents" />
</MenuItem>
</MenuItem>
<MenuItem Header="_Edit">
</MenuItem>
<MenuItem Header="_View">
</MenuItem>
</Menu>
MenuItem 是带头的Items 控件(继承自HeaderedItemControl),这个和带头的内容控件非常像。对于MenuItem,它的头实际上是主对象(通常是文字,如图4-18 所示)。如果Items 是子元素的话就会被作为子菜单显示。和按钮、标签控件一样,MenuItem 使用下划线前缀来支持访问键(access key)。
Separator(分隔线)是一种简单控件,当被放在MenuItem 里时,它会被 那样以水平线渲染。
Icon——允许把任意类型的对象添加到Header 旁边。Icon 对象会像Header 一样被渲染,尽管它通常是一幅小图片。
IsCheckable——让MenuItem 的行为像一个CheckBox 控件。
InputGestureText——用一个相关的手势(gesture)来标识一个项(最常见的就是键盘快捷方式,比如Ctrl+O)。
2.ContextMenu
它是一种保存MenuItem 和Separator 的简单容器。但不能直接把ContextMenu 嵌入到一个元素树中,必须通过一个适当的属性把它加载到控件上,比如使用由
FrameworkElement 和FrameworkContentElement 定义的ContextMenu 属性。当用户在控件上右击(或者按下Shift+F10)时,上下文菜单就被显示出来。
<ListBox>
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="_File">
<MenuItem Header="_New..." />
<MenuItem Header="_Open..." />
<Separator />
<MenuItem Header="Sen_d To">
<MenuItem Header="Mail Recipient" />
<MenuItem Header="My Documents" />
</MenuItem>
</MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
3. TreeView
TreeView 是一种常用控件,它会用可展开和折叠的节点来分层显示数据。
TreeView 和Menu 一样,也是一种简单控件。它可以包含任何项,并把这些项垂直排列。但是如果不用TreeViewItem 来填充它的话,TreeView 就没意义
<TreeView>
<TreeViewItem Header="Desktop">
<TreeViewItem Header="Computer">
</TreeViewItem>
<TreeViewItem Header="Recycle Bin">
</TreeViewItem>
<TreeViewItem Header="Control Panel">
<TreeViewItem Header="Programs" />
<TreeViewItem Header="Security" />
</TreeViewItem>
<TreeViewItem Header="Network">
</TreeViewItem>
</TreeViewItem>
</TreeView>
TreeViewItem 有两个方便的属性IsExpanded 和IsSelected,还有4 个事件,分别对应于这两个属性的4种状态:Expanded、Collapsed、Selected 和Unselected。TreeViewItem 同样支持富键盘导航,加号和减号键可以展开或折叠一个项,箭头方向键、Page Up、Page Down、Home 和End 键可以从一个项向另一个项移动焦点。
4. ToolBar
Separator 也被渲染为垂直线而不是水平线。由于ToolBar 重载了项的默认样式,所以当它们被放在一个ToolBar 中时会自动变成大部分人所期望看到的样子。
<ToolBar>
<Button>1</Button>
<Separator />
<ToggleButton>2</ToggleButton>
<Separator />
</ToolBar>
5. StatusBar
StatusBar 的行为就像Menu,它只是水平排列放它的项
StatusBar 为Separator 提供了一个控件模板,Separator 是作为垂直线被渲染的,就像它显示在ToolBar 中一样。StatusBar 中的项(除了Separator)是被隐式地包装在一个StatusBarItem 中,但是你依然能显式地进行包装。
<StatusBar>
<Label>27 Items</Label>
<Separator />
<Label>Zoom</Label>
<ComboBox>
<ComboBoxItem>100%</ComboBoxItem>
<ComboBoxItem>85%</ComboBoxItem>
</ComboBox>
</StatusBar>
wpf配置菜单栏的更多相关文章
- WPF的菜单栏,工具栏的简单使用
1. 界面效果如下: 2. 页面 .xaml代码如下: <Window x:Class="MenuAndToolBar.MainWindow" xmlns="htt ...
- Wpf配置文件属性
public MainWindow() { InitializeComponent(); this.WindowState = Properties.Settings.Default.WindowSt ...
- Opencv 2.4.10 +VS2010 项目配置记录
http://blog.csdn.net/scottly1/article/details/40978625?utm_source=tuicool 因为工作需要,小小的研究一下Opencv的图像处理, ...
- xubuntu12.04配置
更改源:我用上海交通大学的 首先备份Ubuntu12.04源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup #(备份下当前 ...
- opencv配置(转)
1. 下载安装Opencv,去官网http://opencv.org/即可下载最新版本的Opencv,此处用的是Opencv 2.4.10 安装时傻瓜式的,最新版本的安装就是相当于解压到你指定的安装目 ...
- Mac系统中idea配置git总结
系统配置git相关文章,网上有很多,这里只总结我所遇到的问题 配置git相关信息命令: vim ~/.gitconfig 然后就可以配置相关信息,git配置文件详解请参考以下网址: https://b ...
- 下载、配置全新的eclipse
1.https://www.eclipse.org/downloads/ 2.确保安装配置了JDK,打开eclipse-inst-win64.exe,让eclipse installer程序UPDAT ...
- BookStore示例项目---菜单栏UI分析
部署 参照 ABP示例项目BookStore搭建部署 项目解构 1).动态脚本代理 启动项目时,默认会调用两个接口 /Abp/ApplicationConfigurationScript /Abp/S ...
- 漫谈可视化Prefuse(五)---一款属于我自己的可视化工具
伴随着前期的基础积累,翻过API,读过一些Demo,总觉得自己已经摸透了Prefuse,小打小闹似乎已经无法满足内心膨胀的自己.还记得儿时看的<武状元苏乞儿>中降龙十八掌最后一张居然是空白 ...
随机推荐
- FSL - DualRegression
Source:http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/DualRegression Research Overview A common need for anal ...
- LeetCode 2. Add Two Numbers swift
// // main.swift // leetcode02 // // Created by GuoLa on 16/1/21. // Copyright © 2016年 GuoLa. All ri ...
- Method not found: '!!0[] System.Array.Empty()'.
错误原因:程序里面没有可调用的方法(程序使用的是 .NET Framework 4.6,但是你自己的系统里面使用的不是 4.6版本) 解决方法:1.安装window sp1 ,下载地址是:https ...
- scala 学习笔记(05) OOP(中)灵活的trait
trait -- 不仅仅只是接口! 接上回继续,scala是一个非常有想法的语言,从接口的设计上就可以发现它的与众不同.scala中与java的接口最接近的概念是trait,见下面的代码: packa ...
- 对atime、mtime和ctime的研究
前期准备 在实验之前我们在讨论为何会出现两种修改时间,为此我们推测因为修改的不是文件的同一数据,或者说同一地方,那么我们就要先搞清楚文件的结构. linux文件系统是Linux系统的心脏部分,提供了层 ...
- Theano3.3-练习之逻辑回归
是官网上theano的逻辑回归的练习(http://deeplearning.net/tutorial/logreg.html#logreg)的讲解. Classifying MNIST digits ...
- 深入理解计算机系统(2.7)---二进制浮点数,IEEE标准(重要)
2.6我们进行了二进制整数运算的最后一役,本次LZ将和各位一起进入浮点数的世界,这里没有无符号,没有补码,但是有各种各样的惊奇.倘若你真正的进入了浮点数的世界,一定会发现它原来是这么有意思,而不是像之 ...
- eclipse技巧总结
如果遇到错误或警告,先试试统一的方法:在problems view中,右键error或者warnning,选择quick fix serial ID并不常用,如果不实现它,eclipse会给出一 ...
- ubuntu中安装VMWare tools
在进入VMware Workstation之后找到虚拟机然后选择安装VMWare Tools 在下载的安装包中找到linux.iso,比如我的是C:\Program Files (x86)\VMwar ...
- 77 swapon-激活Linux系统中交换空间
Linux swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存. 语法 /sbin/swapon -a [-v] /sbin/swapon [-v] ...