【发布时间】: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 值.
如何在按下它们各自的键时捕获这些标点字符,而不管键盘布局如何?
【问题讨论】:
-
谢谢汉斯...正是我所需要的