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
}

对于常规键(箭头、字母)可以正常工作,但对于特殊键(如EnterTab)则不接收事件。

如何拦截EnterTab键的事件并使系统不处理它?我需要一直获取事件,不管焦点是什么对象

c#中用于系统键的KeyDown事件

处理键的过程相当复杂。KeyDown实际上是在后期开发的,它不包含"控制"键。要获取这些键,你需要重写IsInputKey(用于Tab键和Control键)或ProcessDialogKey(用于箭头键)。这里有一些优秀的文档https://msdn.microsoft.com/en-us/library/vstudio/ms171535%28v=vs.100%29.aspx