TextBox 上的 KeyDown 事件(例如)将处理键盘事件并在 触发 CharacterReceived 事件之前更新控件CoreWindow(事实上,它会在 KeyDown 事件在 CoreWindow 上触发之前完成) . TextBox 和其他控件也没有任何 CharacterReceived 事件。
因此,有必要处理 TextBox::KeyDown 事件,以对键盘事件执行过滤或其他处理。
KeyDown 事件似乎是对 Win32 WM_KEYDOWN 消息的直接映射,因为它为我们提供了按下键盘键的扫描码和其他一些信息。在 WPF 和 Win32 中,我们会使用 MapVirtualKey() 函数将事件信息转换为 unicode 字符。
如何在 Windows RT 中执行此操作?
最佳答案
不再有 MapVirtualKey 函数。我在这方面发现的唯一信息是,您需要在 keydown 和 keyup 事件中使用 bools 跟踪变量,例如 shift 键(外语的汉字键等),然后制作一个巨大的开关盒将接受所有变量并吐出你想要的应用程序。这是 Microsoft 的页面,其中概述了一些基础知识:
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868246.aspx
关于keyboard - 如何将我们在 KeyDown 事件中获得的内容转换为 Unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9636168/