2014-04-18 81 views
1

我可以用一鍵快捷鍵製作WPF應用程序嗎?到處都是用修飾符製作熱鍵的教程,如:[Alt] + [X]。例如,我需要製作全球熱鍵[F9]。我怎樣才能在C#.NET 4.5中做到這一點?WPF Hotkey一鍵,無修飾鍵

回答

2

是的,你可以。當您創建命令對象時,您可以傳遞的其中一個東西是InputGestureCollection,其中包含從InputGesture類下降的對象列表。其中一個類是KeyGesture類,它定義了用於激活命令的特定鍵序列。

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