在WPF功能区按钮中指定快捷键

时间:2014-09-24 03:29:40

标签: wpf wpf-controls

我有一个WPF功能区按钮,我希望它有一个快捷键。 (例如Ctrl + A)。一直在谷歌搜索但失去了得到一个可能的答案。有谁知道我怎么处理这个?谢谢=)

这是我到目前为止的内容

<my:RibbonButton Name="rb1" Content="Images/save.png" />
<my:RibbonButton Name="rb2" Content="Images/abort.png" />

2 个答案:

答案 0 :(得分:1)

您可以将UIElement.InputBindingsKeyBinding

一起使用

例如

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

使用这种方法,您可以将输入手势绑定到按钮正在使用的命令

假设代码

<my:RibbonButton Name="rb1" Content="Images/save.png" Command="{Binding Save}" />
<my:RibbonButton Name="rb2" Content="Images/abort.png" Command="{Binding Abort}" />

来自MSDN: KeyBinding

  

KeyBinding将KeyGesture与ICommand相关联,例如RoutedCommand。 RoutedCommand是WPF命令系统的ICommand接口的主要实现。通常,当执行KeyGesture时,会调用该命令,尽管命令行为会受特定于命令的因素(如CanExecute值)的影响。

答案 1 :(得分:1)

我更喜欢在代码背后做。我在我的程序中使用代码。 希望它有所帮助。

private void AddHotKeys()  
{
        try
        {
            RoutedCommand firstHotkey = new RoutedCommand();
            firstHotkey .InputGestures.Add(new KeyGesture(Key.S, ModifierKeys.Alt));
            CommandBindings.Add(new CommandBinding(firstHotkey , Save));


        }
        catch (Exception err)
        {
            //handle exception error
        }

}