在 Windows Phone 8.1 Direct3D 应用程序中调出软键盘

Bringing up the soft keyboard in a Windows Phone 8.1 Direct3D app

我正在使用 C++/CX 和 DirectX 11 将游戏移植到 Windows Phone 8.1。我需要调出软键盘来输入一些文本。

下Windows phone8,我这里使用了微软提供的代码:

How to handle keyboard input in a Direct3D app for Windows Phone 8

这很好用,但此代码的 none 在 Windows Phone 8.1 中有效,我一直无法找到任何更新信息。我如何在 8.1 中执行此操作? 我需要 show/hide 键盘并监听键盘输入。弹出一个带有文本输入元素的对话框也是可以接受的。

简单的方法:

  • (在 phone,但不是桌面)调用 InputPane。TryShow and TryHide 到 从实际控件中脱离上下文显式打开输入窗格。您可以在 CoreWindow.CharacterReceived 事件中捕获输入。

  • (任一)通过 Xaml DirectX Interop 在您的 DirectX 表面上使用 Xaml 文本框。这个 优点是 Xaml 控件已经很容易了 实现全文所需的辅助功能和 IME 接口 支持。它的缺点是处于 DX 场景之外,因此 它可能需要一些小心才能很好地放置它。

    我通常会尝试做 Xaml 中的完整交互形式,而不是尝试合并 单个 TextBox 到一个场景中。像您提到的那样将控件放在 Xaml 弹出窗口中应该可以很好地工作。

困难的方法:

  • 通过提供 UI Automation text patterns and Text Service Framework (TSF) 接口实现您自己的全功能控件。在内部,这就是 Xaml 文本控件所做的,以便它们在系统中显示为文本。当用户将焦点设置到文本控件(支持文本模式)时,键盘将自动打开。