有外设设备的屏幕键盘
在 Windows 10 IoT 核心版版本 1809 中,屏幕键盘组件已发生显著更改,并且效果更好! IoT 核心版现在使用与桌面版 Windows 相同的触摸键盘。
新增功能
新的键盘实现为有外设设备开发提供了以下优势:
功能包
对于原型制作(开发)图像,屏幕键盘功能已包含在内,但需要从 Windows 设备门户中的“设备设置”启用它。
为了进行商业化,以下可选功能包会将屏幕键盘添加到映像中:
- IOT_SHELL_ONSCREEN_KEYBOARD
- IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS
提示
有关 IoT 核心版功能的详细信息,请参阅 IoT 核心版功能列表和 IoT 核心版制造指南。
Windows 键盘语言布局
在此版本中,支持的语言布局已扩展为包括桌面 Windows 版本中可用的全套语言布局。 若要让用户可以在不同的语言布局之间进行选择,通常会在应用程序的“设置”区域中包含选择 UI。 提供以下 API,使应用程序能够设置屏幕键盘将使用的语言:
Windows.Globalization.Language.TrySetInputMethodLanguageTag
可以在 LanguageManager.cs 文件的 IoTCoreDefaultApp 示例应用程序中看到此 API 的示例。
支持输入范围
在以前的版本中,仅提供了 EmailSmtpAddress 输入范围。 在此版本中,提供了全套输入范围。 以下主题介绍了输入范围及其在应用程序中的使用方式:
输入法编辑器 (IME)
此版本提供了输入法编辑器,对于任何字符数多于键盘键数的语言(例如中文、日语和韩语),都需要该编辑器。
未遮挡的文本输入字段
在以前的版本中,触摸键盘可能会遮挡聚焦的文本字段,使用户无法看到他们正在键入的内容。 此版本通过自动将文本字段滚动到视图中来解决此问题,这样它就不会再被触摸键盘遮挡。
听写模式
如果输入语言设置为默认的 OS 语言,则可使用语音识别输入功能。 若要显示键盘中的听写按钮,请参阅以下有关用户界面配置的部分。
用户界面配置
屏幕键盘为其用户界面提供了多个可配置的选项。 这些选项是通过注册表配置的。
在开发过程中,可以使用 PowerShell 或安全外壳 (SSH)。 对于创建 OEM 映像,设置注册表值的首选机制是此处介绍的 OEMInput.xml
文件:
注意
此处所述的大多数注册表设置将在屏幕键盘可见时生效。 这样在开发过程中便可轻松尝试不同的设置值组合,立即实时查看所生成的更改。 如果设置没有立即生效,则将需要重新启动设备才能看到对键盘 UI 的更改。
键盘高度
默认情况下,触摸键盘将使用屏幕高度的 45%(靠近底部)。 这可能会在设备上显得太大或太小,具体取决于其大小和分辨率。 键盘高度最多可调整为屏幕高度的三分之二。 任何不在范围内的值都将被限制在范围内。 因为此值指定为浮点值,所以它可以使用像素级精度。 只需应用以下公式来计算百分比:
percentage = (100 * <desired_pixel_height>) / <screen_height>
例如,要将高度更改为 56.783%,需要设置以下注册表值:
set OskRootKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK
reg.exe ADD "%OskRootKey%" /v MaxHeightPercentage /t REG_SZ /d "56.783" /f
或者,通过 PowerShell 进行更改:
set OskRootKey "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK"
cd $OskRootKey
Set-ItemProperty -Path . -Name MaxHeightPercentage -Type String -Value 56.783
注意
注册表值类型必须是字符串 (REG_SZ
),以便小数值可以用
小数点 (.) 表示。 即使对于整数百分比,使用 DWord (REG_DWORD
) 也 不起作用 。
其他首选项
其余首选项集是“首选项”子项中的字符串值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK\Preferences
注册表值 | 默认值 | 说明 |
---|---|---|
AudioFeedback_Disabled | "0" | “0”启用键点击音频反馈;“1”禁用它。 |
Dictation_Disabled | "1" | “0”显示听写(语音识别)按钮;“1”隐藏它。 (参阅以下说明) |
KeyboardModeEnabled_full | "0" | “0”禁用全键盘模式;“1”启用它。 |
KeyboardModeEnabled_narrow | "1" | “0”禁用窄键盘模式;“1”启用它。 |
KeyboardModeEnabled_wide | "1" | “0”禁用宽键盘模式;“1”启用它。 |
ModeOrder | "wide;narrow;full" | 在模式下拉菜单中列出模式的顺序(从左到右)(如果启用) |
SettingsMenuKey_Collapsed | "0" | 隐藏模式下拉菜单。 如果仅启用一种模式,则将此值设置为“1”。 |
Paste_Disabled | "0" | “0”显示“粘贴”按钮;“1”隐藏它。 更改在重新启动后生效。 |
CloseButton_Disabled | "0" | “0”显示“关闭”按钮;“1”隐藏“关闭”按钮。 更改在重新启动后生效。 |
EmojiKeyEnabled | "0" | “0”隐藏“表情符号”键;“1”显示它,允许用户输入表情符号字符。 |
注意
听写模式需要为所选输入语言安装语音包,以及音频输入设备。 如果未安装匹配的语音包,则不会显示“听写”按钮。
所有映像都包含 en-US 语音语言。 其他语音包作为可选功能安装。 有关 IoT 功能的详细信息,请参阅 IoT 核心版功能列表和 IoT 核心版制造指南。
例如,要仅启用 wide
键盘模式,可以在 PowerShell 中运行以下命令:
set OskRootKey "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK"
cd $OskRootKey
mkdir Preferences
cd Preferences
Set-ItemProperty . -Name KeyboardModeEnabled_full -Value "0" # Optional, since the default is "0"
Set-ItemProperty . -Name KeyboardModeEnabled_narrow -Value "0"
Set-ItemProperty . -Name KeyboardModeEnabled_wide -Value "1" # Optional, since the default is "1"
Set-ItemProperty . -Name SettingsMenuKey_Collapsed -Value "1"