WPF中使用加速键(或称访问键)

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中使用加速键(或称访问键)相关的知识,希望对你有一定的参考价值。

原文:WPF中使用加速键(或称访问键)

在界面中有很多字母带下划线的加速键如下图中带下划线的字母,在WPF如何实现呢?


技术图片
加速键示例

如何定义

WPF中定义比较简单,就是在控件的Text或Content属性中给做加速键的字母前加上下划线即可,例如下面用M做加速键:

<Label Content="贵金属(_M):" />

在新的最近几年新的操作系统上,这个加速键的下划线效果可能不会显示出来,按下ALT键就显示了。


技术图片
没按ALT的效果,M下面没有下划线

技术图片
按了ALT的效果,M下面显示下划线指示这是个加速键

加速键定义原则

  1. 使用单词的第一个字母;
  2. 如果第一个有重复,试下第二个;
  3. 如果第二个也重复,第三个也可以的嘛;
  4. 还是不行,可以考虑第二个单词或者第三个单词按上面1、2、3的原则来;
  5. 同一界面里,加速键尽量不重复。

多个控件的绑定

在过去,WinForm的开发中,多个控件的捆绑是自动的,也就是说通过给标签Label设置加速键,执行的时候它会把焦点自动设置到相邻的文本框或者别的有焦点控件上,而在WPF中要显式地指定。
如下图,我要通过按ALT+M把焦点移动组合框上:


技术图片
让ALT+M成为组合框的加速键
            <Label Content="贵金属(_M):"
                   Target="{Binding ElementName=cmbCategory}"
                   />

上面的关键在代码的第二行。

经验

有时候我们在使用标签Label的时候,下划线_会自动解释成为加速键,可是某个时候我们要显示下划线而不是解释成加速键的时候,用TextBlock代替Label就OK了。

达叔傻乐(darwin.zuo@163.com)






以上是关于WPF中使用加速键(或称访问键)的主要内容,如果未能解决你的问题,请参考以下文章

如何在WPF中模拟右键单击datagrid

禁用 Alt 键访问 Windows 菜单/导致菜单加速

如何检测 WPF 中的修饰键状态?

[使用箭头键的WPF数据网格单元格循环

wpf 限制textbox只能输入数字及特殊键

如何使用 WPF 中的 Alt 键切换主菜单可见性?