我想檢測Windows應用程序中的組合鍵(例如Control-A
)。 KeyDown
事件處理程序包含有關按下的最後一個鍵的信息。但是我怎樣才能知道Control鍵是否被按下?在通用Windows應用程序中獲取鍵盤狀態
9
A
回答
17
您可以使用CoreVirtualKeyStates.HasFlag(CoreVirtualKeyStates.Down)
確定是按Ctrl鍵被按下,這樣的 -
Window.Current.CoreWindow.KeyDown += (s, e) =>
{
var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control);
if (ctrl.HasFlag(CoreVirtualKeyStates.Down) && e.VirtualKey == VirtualKey.A)
{
// do your stuff
}
};
+1
如果我正確理解你的問題,而不是訂閱你的頁面的'KeyDown'事件,訂閱'Window.Current.CoreWindow.KeyDown'就像我的答案。 –
+1
完美!非常感謝! – ispiro
6
您可以使用AcceleratorKeyActivated事件,不管是將重點它將始終捕獲事件。
public MyPage()
{
Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += AcceleratorKeyActivated;
}
private void AcceleratorKeyActivated(CoreDispatcher sender, AcceleratorKeyEventArgs args)
{
if (args.EventType.ToString().Contains("Down"))
{
var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control);
if (ctrl.HasFlag(CoreVirtualKeyStates.Down))
{
switch (args.VirtualKey)
{
case VirtualKey.A:
Debug.WriteLine(args.VirtualKey);
Play_click(sender, new RoutedEventArgs());
break;
}
}
}
}
相關問題
- 1. 在Windows通用應用程序使用狀態欄
- 2. 如何獲取iOS 10通知中的應用程序狀態?
- 3. 通用Windows平臺(UWP)應用程序調用觸摸鍵盤
- 4. Windows 10通用應用程序鍵盤替代
- 5. 在VB.net中從鍵盤輸入獲取應用程序名稱
- 6. 在rails應用程序中獲取用戶的skype狀態
- 7. 在啓動期間在主要方法中獲取WPF應用程序中的鍵盤狀態
- 8. 通過C++應用程序獲取套接字狀態(Linux)
- 9. Android獲取應用程序「顯示通知」狀態
- 10. 通過shell腳本獲取應用程序池的狀態
- 11. 區分鍵盤MSR和觸摸屏鍵盤Windows 10中的通用Windows應用程序
- 12. Windows通用應用程序和熱鍵
- 13. 在Windows中開發C#應用程序來獲取Android電池狀態
- 14. 在通用Windows應用程序(物聯網)中訪問原始鍵盤輸入
- 15. (Windows phone 10)Handle應用程序狀態
- 16. 當我的應用程序沒有焦點時,如何捕獲鍵盤狀態?
- 17. 在我的應用程序中獲取開關狀態ListView
- 18. 在應用程序中獲取低功耗狀態
- 19. 在玩框架中獲取URL和應用程序狀態
- 20. 在離子應用程序中獲取網絡狀態
- 21. 如何在Python中獲取窗口應用程序狀態
- 22. 如何在應用程序打開時獲取鍵盤高度
- 23. 如何在windows phone 8.1通用應用程序中使用共享狀態
- 24. windows中的鍵盤程序
- 25. Iphone應用程序鍵盤
- 26. 在Windows Phone 8.1 Direct3D應用程序中啓動軟鍵盤
- 27. 如何在VB.NET 2005應用程序中獲取鍵盤按鍵值?
- 28. 獲取自定義鍵盤中isSticky鍵的當前狀態
- 29. 如何在Mac OSX上獲取鍵盤按鍵狀態?
- 30. 如何在狀態欄中獲得PERMANENT應用程序通知程序?
正常情況下,你會'KeyPressed == Control | A' – kevintjuh93
@KevinKal謝謝。但我試過了。它只是'A'。 – ispiro
控制是一個系統鍵,因此它的記錄方式不同。我不確定它是如何完成的,但這是你看到的問題 – rmn36