如何为WPF中的工具栏按钮创建热键?
在WPF中,你可以做一个按钮,如下所示:如何为WPF中的工具栏按钮创建热键?
<Button Name="Foo" Content="_Foo" />
的“F”联营前下划线F
键与Foo
按钮(下在“富”的“F”加下划线) 。
然而,在工具栏中:
<ToolBar>
<Button Name="Foo" Content="_Foo" />
</ToolBar>
这只是创建与文本“_Foo”按钮,并没有热键与它关联。
是否有任何内置的方式来创建工具栏按钮的热键?
的按钮工具栏风格关闭正常的行为,但你可以通过明确指定AccessText作为按钮的内容迫使它回到:
<ToolBar>
<Button Name="Foo">
<AccessText>_Foo</AccessText>
</Button>
</ToolBar>
在包含工具栏的窗口上使用InputBindings
。具体来说,您将创建一些KeyBindings
像这样:
<Window.InputBindings>
<KeyBinding Modifiers="Control" Key="S" Command="{Binding SaveCommand}"/>
</Window.InputBindings>
它需要使用绑定到一个ICommand(使用MVVM对你是?),并把它放在窗口可以确保快捷键是“全球“,否则你不得不担心键盘焦点。在工具栏,你会表明一个工具提示一般的快捷方式:
<ToolBar>
<Button ToolTip="Save (Ctrl+S)" Command="{Binding SaveCommand}">
</ToolBar>
我正在寻找一种方法来创建一个热键而不是一个键绑定。 – Matt 2012-07-11 13:02:46
也许你应该扩大你的问题来明确你的意思是“热键”? – 2012-07-11 13:05:31
如果您想知道热键是什么,请打开一些基本的Windows程序(计算器就是一个很好的例子)。然后按ALT。您会注意到焦点切换到菜单栏,每个菜单项中的一个字母带下划线。按下加下划线的字符会直接跳到该菜单元素。如果你打开一个菜单,你会注意到那里的元素也有下划线的字母。这些带下划线的字母被称为热键,而不是键盘快捷键。您可能会注意到一些菜单项还有一个键盘快捷键绑定。 – Matt 2012-07-11 13:13:51
您似乎试图让Toolbar控件做它不应该做的事 - 它将Focusable属性设置为False,因此没有接收到键盘输入,因此没有按钮会被键盘激活。 您希望通过菜单项,工具栏按钮或键盘提供操作 - 请参阅前面的建议,转到命令和输入绑定。
看看第一个答案在这里:http://*.com/questions/1361350/keyboard-shortcuts-in-wpf – Zak 2012-07-11 12:56:16