我在c#for Windows 8.1中开发通用应用程序
我试图抓住键盘输入,并且从在线文献中已经指出 KeyDown 事件和 KeyRoutedEventArgs 和键财产。这适用于大多数关键字符并返回 VirtualKey 枚举,例如VirtualKey.A。但是,当字符如,。;:>按下Key属性设置为一个数字,如果与VirtualKey.Shift结合使用该键,则此数字是相同的值,这似乎表示它不代表键上的字符,但仅表示物理键。
碰巧,我使用的是意大利笔记本电脑键盘当然与英国扩展键盘的布局不同,所以英国键盘上的分号(;)键值为186(作为移位或底部字符)并且在意大利语键盘上是188(作为Shift或顶部字符)。因此我很难抓住这些标点字符。
我过去开发过WPF,Silverlight和.Net应用程序,并且不记得即使在组合游戏循环中也难以处理物理键盘输入,因为我只使用了Key或Keys枚举和OEM价值。
无论键盘布局如何,如何在按下相应的键时捕获这些标点符号?
答案 0 :(得分:0)
Hans Passant(https://stackoverflow.com/users/17034/hans-passant)提供的答案:
此事件会暴露物理键盘上键入的字符: http://msdn.microsoft.com/en-us/library/windows.ui.core.corewindow.characterreceived.aspx