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