如何将KeyDown事件中的内容转换为Unicode字符?

时间:2012-03-09 14:59:00

标签: keyboard microsoft-metro windows-runtime

TextBox上的 KeyDown 事件(例如)将处理键盘事件并在触发 CharacterReceived 事件之前更新控件 CoreWindow (实际上,它会在 CoreWindow 上触发 KeyDown 事件之前 。 TextBox和其他控件也没有任何 CharacterReceived 事件。

因此,必须处理 TextBox :: KeyDown 事件以执行键盘事件的过滤或其他处理。

KeyDown 事件似乎是直接映射到Win32 WM_KEYDOWN 消息,因为它为我们提供了按下键盘键的扫描码以及其他一些内容。在WPF和Win32中,我们使用 MapVirtualKey()函数将事件信息转换为unicode字符。

如何在Windows RT中执行此操作?

1 个答案:

答案 0 :(得分:2)

不再有MapVirtualKey功能了。我在这上面找到的唯一信息就是你需要在keydown和keyup事件中跟踪变量,例如shift键(外语的汉字键等),然后制作一个巨大的开关案例,将接收所有变量并吐出你想要的应用程序。这是微软的页面,概述了一些基础知识:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868246.aspx