keyboard - 如何将我们在 KeyDown 事件中获得的内容转换为 Unicode 字符?

标签 keyboard microsoft-metro windows-runtime

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/

相关文章:

c# - Cortana RequestDisambiguationAsync 错误

Android:Listview 不使用键盘向上移动

windows - 检测键盘 Hook

windows-8 - FluidMoveBehavior 可用吗?

windows-8 - 无法更改弹出窗口的宽度

html - $.Ajax 在 Windows 8 Metro 应用程序中不起作用

stream - WinRT StorageFile写入下载的文件

ios - 在 Viewcontroller 上创建自定义键盘

macOS 按键事件慢速重复

javascript - Win8 Metro 应用 setInterval Javascript