Создайте простую неизмененную привязку ключа в WPF

Я пытаюсь создать очень простое приложение WPF. Я бы хотел иметь команду han dler вызывается, когда пользователь нажимает «H» (не Control-H или Alt-H, просто H). Если я использую в коде программной части следующее:

var gesture = new KeyGesture(Key.H, ModifierKeys.None);
var inputBinding = new InputBinding(MyRoutedCommand, gesture);
InputBindings.Add(inputBinding);

Я сразу получаю исключение, в котором говорится, что комбинация клавиш и модификаторов не поддерживается для KeyGesture.

(Я получаю то же исключение, если создаю XAML для аналогичных действий).

Мое приложение не принимает печатный ввод, в приложении нет текстовых полей, поэтому на самом деле нет конфликта с текстом (по крайней мере, на мой взгляд). Я бы не подумал, что это будет так необычно.

Я встречал комментарии в другом месте, в которых предлагалось создать для этого пользовательский элемент управления или перехватывать нажатия клавиш на низком уровне, но это похоже на большие накладные расходы. Есть мысли попроще?

8
задан Russ 24 November 2011 в 00:51
поделиться