В WPF общие сочетания клавиш (в отличие от специального случая клавиш Alt) не назначаются кнопкам, а назначаются действиям.Если вам нужны и кнопка (или пункт меню, несколько кнопок и т. Д.), И команда клавиши для одного и того же действия, вы можете использовать одну команду для обоих.Для пользовательской RoutedCommand вы можете назначить KeyGestures для запуска команды:
public static RoutedCommand MyCommand { get; private set; }
static Window1()
{
MyCommand = new RoutedCommand("MyCommand", typeof(Window1), new InputGestureCollection { new KeyGesture(Key.O, ModifierKeys.Control) });
}
public Window1()
{
InitializeComponent();
CommandBindings.Add(new CommandBinding(MyCommand, (_, e) => MessageBox.Show("Command fired")));
}
, а затем также назначить ее в качестве команды кнопки:
<Button Content="Click Me" Command="{x:Static local:Window1.MyCommand}"/>