【问题标题】:Windows 8.1 Handling Physical Keyboard InputWindows 8.1 处理物理键盘输入
【发布时间】:2014-10-22 20:39:31
【问题描述】:

我正在用 c# 为 Windows 8.1 开发通用应用程序

我正在尝试捕捉键盘输入,并从在线文献中指出了 KeyDown 事件和 KeyRoutedEventArgs 以及 Key财产。这适用于大多数关键字符并返回 VirtualKey 枚举,例如 VirtualKey.A。但是,当按下诸如 ,.;:> 之类的字符时,Key 属性设置为一个数字,如果该键与 VirtualKey.Shift 结合按下,则该数字是相同的值,这似乎表明它不代表字符键上,但只代表物理键。

碰巧的是,我使用的是意大利笔记本电脑键盘,它的布局当然与英国扩展键盘不同,因此在英国键盘上分号 (;) 的键值是 186(作为未移位或底部字符),在意大利语键盘上为 188(作为 Shift 或顶部字符)。因此,我很难捕捉这些标点符号。

我过去曾开发过 WPF、Silverlight 和 .Net 应用程序,但我不记得即使在游戏循环中处理物理键盘输入也有那么困难,因为我只是使用了 Key 或 Keys 枚举和 OEM 值.

如何在按下它们各自的键时捕获这些标点字符,而不管键盘布局如何?

【问题讨论】:

标签: windows input keyboard


【解决方案1】:

Hans Passant (https://stackoverflow.com/users/17034/hans-passant) 提供的答案:

在物理键盘上键入的字符会通过此事件公开: http://msdn.microsoft.com/en-us/library/windows.ui.core.corewindow.characterreceived.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-13
    • 2016-03-15
    • 2010-09-23
    • 1970-01-01
    • 2010-09-28
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多