我正在使用C#为HoloLens编写VNC客户端,我很难搞清楚如何处理键盘输入. KeyUp / KeyDown给了我一个
Windows.System.VirtualKey对象,但似乎没有一个API将这些VirtualKeys(以及修饰符,例如shift)映射到它们在给定布局上表示的字符.例如.当它只是VirtualKey.F时,VirtualKey.Shift VirtualKey.F ==’F’与’f’.或者Shift 5在美国键盘上给出%.
在win32应用程序中,您将使用MapVirtualKey为您处理键盘布局 – 如何在UWP中处理?
解决方法
无法在KeyUp / KeyDown事件中获取已翻译的字符.但是,当使用
CoreWindow.CharacterReceived事件获取翻译后的角色时,它是可能的.
Window.Current.CoreWindow.CharacterReceived += CoreWindow_CharacterReceived;
并且您将获得翻译的输入字符的KeyCode(例如,对于第5班,它获得37,而对于5,它获得53)通过CharacterReceivedEventArgs:
private void CoreWindow_CharacterReceived(CoreWindow sender,CharacterReceivedEventArgs args) { uint keyCode=args.KeyCode; }