0

在 WPF 中,您可以按如下方式制作按钮:

<Button Name="Foo" Content="_Foo" />

“F”前的下划线将F键与Foo按钮相关联(并在“Foo”中的“F”下方添加下划线)。

但是,在工具栏中:

<ToolBar>
    <Button Name="Foo" Content="_Foo" />
</ToolBar>

这只是创建了一个带有文本“_Foo”的按钮,并且没有与之关联的热键。

是否有任何内置方法可以为工具栏按钮创建热键?

4

3 回答 3

3

在包含工具栏的窗口上使用InputBindings。具体来说,您将创建一些KeyBindings类似的内容:

<Window.InputBindings>
    <KeyBinding Modifiers="Control" Key="S" Command="{Binding SaveCommand}"/>
</Window.InputBindings>

它需要使用与 ICommand 的绑定(您使用的MVVM 对吗?)并通过将其放在 Window 上,您可以确保快捷方式是“全局的”,否则您必须担心键盘焦点是什么。在您的工具栏中,您通常会通过 Tooltip 指示快捷方式:

<ToolBar>
    <Button ToolTip="Save (Ctrl+S)" Command="{Binding SaveCommand}">
</ToolBar>
于 2012-07-11T12:51:46.643 回答
3

Buttons 的 ToolBar 样式会关闭正常行为,但您可以通过将 AccessText 显式指定为 Button 的内容来强制它返回:

<ToolBar>
    <Button Name="Foo">
        <AccessText>_Foo</AccessText>
    </Button>
</ToolBar>
于 2012-07-11T13:40:22.113 回答
0

您似乎试图让工具栏控件做它不应该做的事情 - 它的 Focusable 属性设置为 False 因此不接收键盘输入,因此不会通过键盘激活任何按钮。您希望通过菜单项、工具栏按钮或键盘进行操作 - 如前所述,选择 Commands 和 InputBindings。

于 2016-01-14T22:18:01.043 回答