XAML Direct X Universal应用程序中的键盘布局处理

时间:2015-09-27 22:53:31

标签: win-universal-app uwp

我想在通用应用程序(Direct X + XAML)中添加文本输入,例如聊天框。目前,我正在使用

Window::Current->CoreWindow->KeyUp += ref new TypedEventHandler<CoreWindow^, KeyEventArgs^>(this, &MainPage::OnKeyUp);
Window::Current->CoreWindow->KeyDown += ref new TypedEventHandler<CoreWindow^, KeyEventArgs^>(this, &MainPage::OnKeyDown);

捕获单个按键并处理它们以形成要显示的文本。问题是我不知道如何考虑键盘布局(例如法语,德语)。班级Windows::UI::Core::KeyEventArgs没有提供太多信息。这个基本问题应该有一个简单的解决方案吗?如何根据键盘布局获取原始键盘输入并将其转换为Unicode字符? (我相信在Win32上应该有一个解决方案。非常不幸的是,微软的Direct X样本只考虑仅触摸屏的非物理键盘情况;与他们在Windows 10中宣传的Continuum / Universal方法相反。)

注意:我不希望有一个hack-ish解决方案,例如在Direct X EditBox之上显示/隐藏XAML SwapChainPanel

1 个答案:

答案 0 :(得分:0)

翻译的字符在CoreWindows :: CharacterReceived事件中提供。

按键事件仅报告按键,而不是字符,并且没有足够的数据可以转换为字符,尤其是复杂字符和非键盘输入。