WPF控件库学习之Menu

Menu 是一个控件,使用该控件可以对那些与命令或事件处理程序相关联的元素以分层方式进行组织。每个 Menu 可以包含多个 MenuItem 控件。每个 MenuItem 都可调用命令或调用 Click 事件处理程序。MenuItem 也可以有多个 MenuItem 元素作为子项,从而构成子菜单。
 
  下图演示了菜单控件的三种不同状态。默认状态是没有设备(如鼠标指针)停留在 Menu 上时的状态。当鼠标指针悬停在 Menu 上时显示焦点状态,当在 Menu 上单击鼠标按钮时显示按下状态。
 

不同状态下的菜单

使用 Menu 类,可以按照分层顺序对与命令和事件处理程序相关联的元素进行组织。每个 Menu 元素都包含一个由 MenuItem 元素组成的集合。

Menu 控件
Menu 控件表示一系列用来为应用程序指定命令或选项的项。通常,单击 MenuItem 将打开一个子菜单或者导致应用程序执行相应的命令。

创建 Menu
下面的示例将创建一个 Menu 来操作 TextBox 中的文本。Menu 包含多个使用 Command、IsCheckable 和 Header 属性以及 Checked、Unchecked 和 Click 事件的 MenuItem 对象。

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

 

 

具有键盘快捷键的 MenuItem
键盘快捷键是可以用键盘输入以调用 Menu 命令的字符组合。例如,“复制”的快捷键是 Ctrl+C。可以将以下两个属性与键盘快捷键和菜单项结合使用:InputGestureText 和 Command。

InputGestureText
下面的示例演示如何使用 InputGestureText 属性来将键盘快捷键文本分配给 MenuItem 控件。这只是将键盘快捷键放在菜单项中, 而不会将命令与 MenuItem 相关联。应用程序必须处理用户的输入才能执行该操作。

 

命令
下面的示例演示如何使用 Command 属性来将“打开”和“保存”命令与 MenuItem 控件相关联。该 Command 属性不但将命令与 MenuItem 相关联,而且还提供要用作快捷方式的输入笔势文本。

 

MenuItem 类还有一个 CommandTarget 属性,该属性指定要在其中执行命令的元素。如果未设置 CommandTarget,则具有键盘焦点的元素将收到命令。

Menu 样式
使用控件样式设置,可以显著改变 Menu 控件的外观和行为,而不必编写自定义控件。除了设置可视化属性外,还可以向控件的各个部分应用 Style,通过属性更改控件各个部分的行为,向控件中添加额外的部分,或者改变控件的布局。下面的示例演示了几种用来将 Style 添加到 Menu 控件中的方法。

第一个代码示例定义了一个名为 Simple 的 Style 来说明如何在您的样式中使用当前的系统设置。该代码将 MenuHighlightBrush 的颜色分配为菜单的背景色,将 MenuTextBrush 分配为菜单的前景色。请注意,您在分配画笔时使用的是资源键。

 

下面的示例使用的是 Trigger 元素,通过这些元素,可以改变 MenuItem 的外观来响应发生在 Menu 上的事件。当您将鼠标移到 Menu 上时,菜单项的前景色和字体特征会发生变化。

你可能感兴趣的:(command,header,WPF,menu,textbox,技术人)