【问题标题】:Why do MenuItem headers have underscores before them?为什么 MenuItem 标题前面有下划线?
【发布时间】:2013-11-22 17:24:51
【问题描述】:

如果您声明 MenuItems,我总是看到他们的 Header 属性声明如下:

<MenuItem Header="_Edit">
    <MenuItem Header="_Undo"/>
    <MenuItem Header="_Redo"/>
</MenuItem>

而不是这样:

<MenuItem Header="Edit">
    <MenuItem Header="Undo"/>
    <MenuItem Header="Redo"/>
</MenuItem>

这是有原因的还是只是一种约定?在设计器中,无论我是否有下划线,它似乎都没有任何影响。

【问题讨论】:

  • 我猜这是使用 & 来表示“激活键”的旧惯例(char get 在菜单中带有下划线,可以与 alt-key 一起使用),但是 & 在平均文本,因此他们将其转换为“_”,因为它代表下划线。

标签: c# wpf menu menuitem


【解决方案1】:

它指定键盘快捷键。

"_Edit" 表示 CTRL + E 将激活该菜单项,而

"E_dit" 表示 CTRL + D 将起作用。

此外,带下划线的字母在聚焦时会带有下划线,以提示用户使用键盘快捷键。

From MSDN

【讨论】:

  • 另外:当显示并获得焦点时,下划线后面的字母带有下划线。
猜你喜欢
  • 1970-01-01
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 2011-04-02
  • 1970-01-01
相关资源
最近更新 更多