c#中用于系统键的KeyDown事件
本文关键字:KeyDown 事件 系统 用于 | 更新日期: 2023-09-27 18:12:25
我试图捕捉任何KeyDown
事件,无论什么项目具有焦点。在构造函数中有以下代码:
Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
我的功能是:
void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
//Stuff in here
}
对于常规键(箭头、字母)可以正常工作,但对于特殊键(如Enter或Tab)则不接收事件。
如何拦截Enter或Tab键的事件并使系统不处理它?我需要一直获取事件,不管焦点是什么对象
处理键的过程相当复杂。KeyDown实际上是在后期开发的,它不包含"控制"键。要获取这些键,你需要重写IsInputKey(用于Tab键和Control键)或ProcessDialogKey(用于箭头键)。这里有一些优秀的文档https://msdn.microsoft.com/en-us/library/vstudio/ms171535%28v=vs.100%29.aspx