虚拟键盘支持

虽然物理附加键盘是电脑上的常见假设,但新的输入形式(如游戏板和触摸)会挑战这一假设。 这对于手持和主机游戏玩家尤其重要。 根据平台的不同,可以使用不同的解决方案来启动虚拟键盘。 虽然游戏可以实现并创建自己的虚拟键盘,但系统提供了自己的虚拟键盘替代方案,这些虚拟键盘替代方案针对平台进行了优化,并在所有游戏中提供一致的用户体验。

在 Windows 上 TryShow ,可以通过新 CoreInputViewKind::Gamepad 选项利用 API。 TryHide然后,可以使用 API 在不需要时关闭键盘。 以下代码示例演示了这一点:

#include <winrt/windows.ui.viewmanagement.core.h>
using namespace winrt::Windows::UI::ViewManagement::Core;

// CoreInputViewKind::Gamepad enum requires headers from 26100.3624 Windows SDK or greater
// Otherwise, use static_cast<CoreInputViewKind>(7) for earlier SDKs

CoreInputView::GetForCurrentView().TryShow(CoreInputViewKind::Gamepad));

CoreInputView::GetForCurrentView().TryHide();

对于主机,GDK 提供了两种不同的解决方案,用于使用虚拟键盘处理文本输入。 对于大多数游戏,最佳解决方案是依赖 XGameUiShowTextEntryAsync。 对于需要呈现多行文本或输入超过 1024 个字符的游戏,它们可以依赖于 XGameUiTextEntryOpen

下表提供了这两个解决方案之间的比较。

说明 XGameUiShowTextEntryAsync XGameUiTextEntryOpen
多行支持
最多字符数 1024 1024 * 32
输入点 虚拟键盘获取输入焦点 虚拟键盘获取输入焦点
定位 固定位置 按游戏定位
文本呈现 由虚拟键盘处理 由游戏处理
云流式处理行为 利用客户端上的虚拟键盘 由流式处理服务器呈现

另请参阅

Windows 手持设备上的 GDK 游戏清单 - 检查 3:文本输入XGameUiShowTextEntryAsync
XGameUiTextEntryOpen