Могу ли я создать приложение WPF с одной ключевой клавишей? Всюду есть учебник для создания горячих клавиш с модификаторами, например: [Alt] + [X]. Например, мне нужна глобальная горячая клавиша [F9]. Как это сделать в C# .NET 4.5?WPF Горячая клавиша одна клавиша, без клавиш модификаторов
ответ
Да, вы можете. Когда вы создаете свой командный объект, одна из вещей, которую вы можете передать, - это InputGestureCollection
, которая содержит список объектов, которые спускаются с класса InputGesture
. Одним из этих классов является класс KeyGesture
, который определяет конкретную последовательность клавиш, используемую для активации команды.
Одно из свойств ote KeyGesture
класс - Key
property, of type Key
. Это перечисление ключевых значений. Тот, который вы хотите, - Key.F9
.
Чтобы создать команду, вы делаете что-то вроде этого:
InputGestureCollection myCommandGestures = new InputGesturecollection();
myCommandGestures.Add(new KeyGesture(Key.F9);
RoutedCommand MyCommand = new RoutedCommand("MyCommand", typeof(MyViewModelClass), myCommandGestures);
РЕДАКТИРОВАНИЕ
Вышеуказанные работы в рамках только WPF. Если вы хотите глобальную горячую клавишу, вам придется вызвать функцию Win32 RegisterHotKey
. The answer to this question on the Visual Studio forum содержит ссылку на пример того, как это сделать.
Я не уверен, что вам нужно будет сделать обоим или просто вызвать функцию RegisterHotKey
, чтобы зарегистрировать вашу горячую клавишу.
Спасибо вам, это полезно сейчас :) Если бы я получил одну горячую клавишу сейчас, могу ли я зарегистрировать ее как глобальную горячую клавишу? Мне нужно поймать F9 из каждого окна, когда мое приложение сведено к минимуму в лоток. – Tagon