我有一个WPF功能区按钮,我希望它有一个快捷键。 (例如Ctrl + A)。一直在谷歌搜索但失去了得到一个可能的答案。有谁知道我怎么处理这个?谢谢=)
这是我到目前为止的内容
<my:RibbonButton Name="rb1" Content="Images/save.png" />
<my:RibbonButton Name="rb2" Content="Images/abort.png" />
答案 0 :(得分:1)
您可以将UIElement.InputBindings与KeyBinding
一起使用例如
<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}" />
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
}
}