我正在 try catch 任何 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 按键事件并阻止系统处理它?无论焦点是什么对象,我都需要始终获取事件。
最佳答案
处理 key 的过程相当复杂。 KeyDown 实际上在这个过程中已经很晚了,并且不包括“控制”键。要获得这些键,您需要覆盖 IsInputKey(对于 Tab 和 Control 键)或 ProcessDialogKey(对于箭头键)。在这里查看一些优秀的文档 https://msdn.microsoft.com/en-us/library/vstudio/ms171535%28v=vs.100%29.aspx
关于c# - C# 中用于系统键的 KeyDown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524773/