菜单模板
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio 2015
作者:朱海恩
撰写时间:2019年5月22日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Windows 的菜单系统是图形用户界面的重要组成之一,在 VisualC#中使用 MainMenu 控件可以很方便地实现Windows的菜单。
菜单的结构:有文字的单个命令称菜单项,顶层菜单项是横着排列的,单击某个菜单项后弹出的称为菜单或子菜单,它们均包含若干个菜单项,菜单项其实是 MenuItem 类的一个对象。菜单项有的是变灰显示的,表示该菜单项当前是被禁止使用的。
1、菜单栏(Menu)一般放在顶部,菜单项(MenuItem)的文字使用属性Header。菜单项里可以嵌套多个菜单项,做成树图模式,子菜单可以使用竖向分隔线(Separator)来分隔。
2、工具栏可以使用工具栏集合ToolBarTray的属性来完成,它适合有多个工具栏时使用,内部的工具栏ToolBar不再独占一行,如果单独用时,工具栏ToolBar独占一行。
3、状态栏(StatusBar)一般底部,显示各种状态信息,使用文本块的Text属性显示内容,换行显示可以使用TextWrapping="Wrap"表示换行显示文本。
代码示例:
<DockPanel>
<!--停靠布局,让菜单栏和工具栏位于窗口顶部-->
<!--Menu 菜单栏,一般放在顶部-->
<Menu DockPanel.Dock="Top">
<MenuItem Header="文件(F)">
<!--菜单项为MenuItem,文字使用属性Header-->
<MenuItem Header="新建(N) Ctrl+N">
<MenuItem Header="项目"></MenuItem>
<MenuItem Header="文件"></MenuItem>
</MenuItem>
<MenuItem Header="打开(O)... Ctrl+O"></MenuItem>
<MenuItem Header="保存(S) Ctrl+O"></MenuItem>
<MenuItem Header="另存为(A)..."></MenuItem>
<Separator />
<MenuItem Header="页面设置(U)..."></MenuItem>
<MenuItem Header="打印(P)... Ctrl+P"></MenuItem>
<Separator />
<MenuItem Header="退出(X)"></MenuItem>
</MenuItem>
<MenuItem Header="编辑(E)">
<!--菜单项为MenuItem,文字使用属性Header-->
<MenuItem Header="撤销(U) Ctrl+Z"></MenuItem>
<Separator />
<MenuItem Header="剪切(T) Ctrl+X"></MenuItem>
<MenuItem Header="复制(C) Ctrl+C"></MenuItem>
<MenuItem Header="粘贴(P) Ctrl+V"></MenuItem>
<MenuItem Header="删除(L) Del"></MenuItem>
<Separator />
<MenuItem Header="查找(F)... Ctrl+F"></MenuItem>
<MenuItem Header="查找下一个(N) F3"></MenuItem>
<MenuItem Header="替换(R) Ctrl+H"></MenuItem>
<MenuItem Header="转到(G)... Ctrl+G"></MenuItem>
<Separator />
<MenuItem Header="全选(A) Ctrl+A"></MenuItem>
<MenuItem Header="时间/日期(D) F5"></MenuItem>
</MenuItem>
<MenuItem Header="格式(O)">
<MenuItem Header="自动换行(W)"></MenuItem>
<MenuItem Header="字体(F)..."></MenuItem>
</MenuItem>
<MenuItem Header="查看(V)">
<MenuItem Header="状态栏(S)"></MenuItem>
</MenuItem>
<MenuItem Header="帮助(H)">
<MenuItem Header="查看帮助(H)"></MenuItem>
<Separator />
<MenuItem Header="关于记事本(A)"></MenuItem>
</MenuItem>
</Menu>
<!--ToolBarTray 工具栏集合,当有多个工具栏时使用。内部的ToolBar不再独占一行-->
<ToolBarTray DockPanel.Dock="Top">
<ToolBar>
<Button Content="<-"></Button>
<Button Content="->"></Button>
<Separator />
<Button Content="新建项目"></Button>
<Button Content="打开文件"></Button>
<Button Content="保存"></Button>
<Button Content="全部保存"></Button>
<Separator />
<Button Content="撤销"></Button>
<Button Content="重做"></Button>
</ToolBar>
<ToolBar>
<Button Content="注释"></Button>
<Button Content="取消对选中行的注释"></Button>
<Separator />
<Button Content="在当前标签切换书签"></Button>
<Button Content="将插入符号移动到上一书签"></Button>
</ToolBar>
</ToolBarTray>
<!--StatusBar 状态栏,一般放在底部,显示各种状态信息-->
<StatusBar DockPanel.Dock="Bottom" Height="20">
<TextBlock Text="状态栏内容"></TextBlock>
</StatusBar>
<!--TextBox:文本框-->
<TextBox DockPanel.Dock="Left" Text=" Text 1" Width="100"></TextBox>
<TextBox DockPanel.Dock="Left" Text=" Text 2" Width="400"></TextBox>
<TextBox DockPanel.Dock="Left" Text=" Text 3"></TextBox>
</DockPanel>
效果视图:
可以使用Menu 菜单栏这种编程模式来一些文本文档类型的文档等。