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

时间:2015-09-11 13:33:28

标签: c# xaml keydown eventhandler

我尝试捕获任何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 按键的事件并阻止系统处理它?无论焦点是什么对象,我都需要一直得到这个事件。

1 个答案:

答案 0 :(得分:0)

处理密钥的过程非常复杂。 KeyDown实际上在这个过程中很晚,并且不包括“控制”键。要获取这些键,您需要覆盖IsInputKey(对于Tab键和控制键)或ProcessDialogKey(对于箭头键)。请在此处查看一些优秀文档https://msdn.microsoft.com/en-us/library/vstudio/ms171535%28v=vs.100%29.aspx