2014-04-18 4 views
1

Могу ли я создать приложение WPF с одной ключевой клавишей? Всюду есть учебник для создания горячих клавиш с модификаторами, например: [Alt] + [X]. Например, мне нужна глобальная горячая клавиша [F9]. Как это сделать в C# .NET 4.5?WPF Горячая клавиша одна клавиша, без клавиш модификаторов

ответ

2

Да, вы можете. Когда вы создаете свой командный объект, одна из вещей, которую вы можете передать, - это 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, чтобы зарегистрировать вашу горячую клавишу.

+0

Спасибо вам, это полезно сейчас :) Если бы я получил одну горячую клавишу сейчас, могу ли я зарегистрировать ее как глобальную горячую клавишу? Мне нужно поймать F9 из каждого окна, когда мое приложение сведено к минимуму в лоток. – Tagon

Смежные вопросы