В принципе, я хочу создать комбинацию клавиш, которая действительна в пределах области окна, а не только включена, когда фокус находится внутри элемента управления, который его связывает.Командная маршрутизация для клавишных клавиш
более подробно ....
У меня есть окно, которое имеет 3 управления:
- панель инструментов
- текстовое поле
- пользовательского управления
На панели инструментов есть кнопка, привязанная к команде CustomCommands.CmdA
, и привязанная к клавиатуре sh ortcut Ctrl + T.
Мое пользовательское управление может обрабатывать CmdA
. Когда я запускаю приложение и нажимаю на свой пользовательский элемент управления, CmdA
включен и работает нормально. Также Ctrl + T заставляет команду стрелять.
Однако, когда я выбираю текстовое поле, моя пользовательская команда CmdA
отключается.
Я могу исправить это, установив цель команды для кнопки CmdA
. Теперь, когда я выбираю textBox, CmdA
по-прежнему включен.
Но Комбинация клавиш Ctrl + T ничего не делает.
Есть ли какой-либо простой способ изменить масштаб сочетаний клавиш? Или мне нужно поймать нажатие клавиши где-нибудь ниже, и определить, к какой команде он относится и направить его сам (если это так, то в этом случае?)
Thanks H.B, но это свяжет «новую» команду с функцией «CommandBinding_Executed», внедренной в код окна. Однако пользовательский элемент управления должен обрабатывать его. Это больше проблема, так как пользовательский элемент управления создается динамически, и я не знаю, какая из 100 пользовательских команд, с которыми он сможет справиться. – Sprotty