Экранная клавиатура для головных устройств

В Windows 10 IoT Базовая версии 1809 компонент экранной клавиатуры значительно изменился и к лучшему! IoT Core теперь использует те же компоненты сенсорной клавиатуры, что и настольный выпуск Windows.

новые функции;

Новая реализация клавиатуры предоставляет следующие преимущества для разработки управляемых устройств:

Пакеты компонентов

Для создания прототипов (разработки) изображений функция экранной клавиатуры уже включена, но ее необходимо включить в разделе Параметры устройства на портале устройств Windows.

Для коммерциализации следующие необязательные пакеты функций добавят экранную клавиатуру к изображению:

  • IOT_SHELL_ONSCREEN_KEYBOARD
  • IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS

Совет

Дополнительные сведения о основных функциях Интернета вещей см. в разделах Список основных функций Интернета вещей и Руководство по производству IoT Core.

Языковые макеты клавиатуры Windows

В этом выпуске поддерживаемые языковые макеты расширены и включают полный набор доступных в классическом выпуске Windows. Чтобы пользователи могли выбирать между различными языковыми макетами, вы обычно включаете пользовательский интерфейс выбора в область параметров приложения. Следующий API предоставляется, чтобы приложение мог задать язык, который будет использовать экранная клавиатура:

Windows.Globalization.Language.TrySetInputMethodLanguageTag

Пример этого API можно увидеть в примере приложения IoTCoreDefaultApp в файле LanguageManager.cs .

Поддержка областей ввода

В предыдущих выпусках был доступен только входной область EmailSmtpAddress. В этом выпуске доступен полный набор областей ввода. В следующем разделе описываются области ввода и способы их использования в приложениях.

Использование типа вводимых данных для изменения сенсорной клавиатуры

редактор метода ввода (IME)

В этом выпуске предоставляется редактор метода ввода, который необходим для любого языка, имеющего больше графем, чем клавиш на клавиатуре, например китайского, японского и корейского.

Незащищенные поля ввода текста

В предыдущих выпусках сенсорная клавиатура могла скрыть текстовое поле, чтобы пользователь не мог видеть, что он вводит. В этом выпуске эта проблема устранена путем автоматической прокрутки текстового поля в режиме просмотра, чтобы оно больше не закрывалось сенсорной клавиатурой.

Режим диктовки

Если для языка ввода задан язык ОПЕРАЦИОННОЙ СИСТЕМЫ, который является языком по умолчанию, доступна функция ввода распознавания речи. Чтобы отобразить кнопку диктовки на клавиатуре, см. следующий раздел о конфигурации пользовательского интерфейса.

Конфигурация пользовательского интерфейса

Экранная клавиатура предоставляет несколько настраиваемых параметров для пользовательского интерфейса. Они настраиваются с помощью реестра. Во время разработки можно использовать PowerShell или Secure Shell (SSH). Для создания образа OEM предпочтительный механизм настройки значений OEMInput.xml реестра — это файл, рассматриваемый здесь:

Настройки среды выполнения

Примечание

Большинство параметров реестра, описанных здесь, вступают в силу, пока отображается экранная клавиатура. Это позволяет во время разработки легко попробовать различные сочетания значений параметров, сразу же видя результирующие изменения в режиме реального времени. Если параметр не войдет в силу немедленно, необходимо перезагрузить устройство, чтобы увидеть изменения в пользовательском интерфейсе клавиатуры.

Высота клавиатуры

По умолчанию сенсорная клавиатура будет использовать менее 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

Примечание

Типом значения реестра должен быть String (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 "широкий;узкий;полный" Порядок (слева направо), в котором режимы перечислены в раскрывающемся меню режима, если он включен.
SettingsMenuKey_Collapsed "0" Скрывает раскрывающееся меню режима. Установите для этого параметра значение "1", если включен только один режим.
Paste_Disabled "0" "0" — кнопка "Вставить"; "1" скрывает его. Изменение вступает в силу после перезагрузки.
CloseButton_Disabled "0" "0" отображает кнопку Закрыть; "1" скрывает кнопку Закрыть. Изменение вступает в силу после перезагрузки.
EmojiKeyEnabled "0" "0" скрывает ключ эмодзи; "1" отображает его, позволяя пользователю вводить символы эмодзи.

Примечание

Режим диктовки требует установки пакета речи для выбранного языка ввода, а также звукового устройства ввода. Если соответствующие речевые пакеты не установлены, кнопка диктовки не отображается.

Все изображения включают язык речи en-US. Другие пакеты для распознавания речи устанавливаются в качестве дополнительных компонентов. Дополнительные сведения о функциях Интернета вещей см. в разделах Список основных функций Интернета вещей и Руководство по производству IoT Core.

Например, чтобы включить режим только 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"