Как запустить RoutedCommand на уровне приложения в шаблоне с несколькими окнами?

У меня есть несколько окон в приложении, например, window1, window2 и window3.

одна RoutedCommand (с KeyGesture F11) была привязана в window1. Как запустить эту перенаправленную команду, нажав F11, в то время как у window2 был фокус ввода?

В приложении WinForm я использую MessageFilter для обнаружения F11, но в WPF как это сделать?

1 ответ

Решение

Вы можете использовать CommandManager.RegisterClassCommandBinding, чтобы подключить обработчик ко всем приложениям Window. Это будет работать до конца вашего приложения, поэтому обычно имеет смысл поместить его в файл App.xaml.cs, но вы можете поместить его где угодно.

CommandManager.RegisterClassCommandBinding(typeof(Window), new CommandBinding(ApplicationCommands.Cut, CutExecuted));
Другие вопросы по тегам