Compartilhar via


Teclado virtual para dispositivos com cabeça duração

Em Windows 10 IoT Core, versão 1809, o componente de teclado na tela mudou significativamente e para melhor! O IoT Core agora usa os mesmos componentes de teclado virtual que a edição desktop do Windows.

Novos recursos

A nova implementação de teclado fornece os seguintes benefícios para o desenvolvimento de dispositivos de cabeça dura:

Pacotes de recursos

Para prototipagem de imagens (desenvolvimento), o recurso de teclado na tela já está incluído, mas você precisará habilitá-lo nas Configurações do Dispositivo no Portal de Dispositivos do Windows.

Para comercialização, os seguintes pacotes de recursos opcionais adicionarão o teclado virtual à sua imagem:

  • IOT_SHELL_ONSCREEN_KEYBOARD
  • IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS

Dica

Para obter mais informações sobre os recursos do IoT Core, consulte Lista de Recursos do IoT Core e Guia de fabricação do IoT Core.

Layouts de linguagem de teclado do Windows

Com esta versão, os layouts de idioma com suporte se expandiram para incluir o conjunto completo daqueles disponíveis na edição desktop do Windows. Para permitir que os usuários selecionem entre layouts de idioma diferentes, você normalmente incluiria a interface do usuário de seleção na área Configurações do aplicativo. A API a seguir é fornecida para permitir que seu aplicativo defina o idioma que o teclado virtual usará:

Windows.Globalization.Language.TrySetInputMethodLanguageTag

Um exemplo dessa API pode ser visto no aplicativo de exemplo IoTCoreDefaultApp, no arquivo LanguageManager.cs .

Suporte para escopos de entrada

Nas versões anteriores, apenas o escopo de entrada EmailSmtpAddress estava disponível. Nesta versão, o conjunto completo de escopos de entrada está disponível. O tópico a seguir explica os escopos de entrada e como usá-los em seus aplicativos:

Usar o escopo de entrada para alterar o teclado virtual

Input Method Editor (IME)

Esta versão fornece um Editor de Método de Entrada, que é necessário para qualquer idioma que tenha mais grafemas do que teclas no teclado, como chinês, japonês e coreano.

Campos de entrada de texto não obscurecidos

Em versões anteriores, o teclado virtual poderia obscurecer o campo de texto focado para que o usuário não pudesse ver o que estava digitando. Esta versão corrige esse problema rolando automaticamente o campo de texto para exibição para que ele não seja mais obscurecido pelo teclado virtual.

Modo de Ditado

Quando o idioma de entrada é definido como o idioma do sistema operacional, que é o padrão, o recurso de entrada de reconhecimento de voz está disponível. Para mostrar o botão de ditado no teclado, consulte a seção a seguir na configuração da Interface do Usuário.

Configuração da Interface do Usuário

O teclado virtual fornece várias opções configuráveis para sua interface do usuário. Eles são configurados por meio do registro. Durante o desenvolvimento, você pode usar o PowerShell ou o Secure Shell (SSH). Para criar uma imagem OEM, o mecanismo preferencial para definir valores do Registro é o OEMInput.xml arquivo discutido aqui:

Personalizações de runtime

Observação

A maioria das configurações do Registro documentadas aqui entrará em vigor enquanto o teclado virtual estiver visível. Isso permite que você durante o desenvolvimento tente facilmente diferentes combinações de valores de configurações, vendo imediatamente as alterações resultantes em tempo real. Se uma configuração não entrar em vigor imediatamente, você precisará reinicializar o dispositivo para ver as alterações na interface do usuário do teclado.

Altura do teclado

Por padrão, o teclado virtual usará os 45% inferiores da altura da tela. Isso pode parecer muito grande ou pequeno em seu dispositivo, dependendo de seu tamanho e resolução. Você pode ajustar a altura até um máximo de dois terços da altura da tela. Qualquer valor que não estiver no intervalo será fixado no intervalo. Como isso é especificado como um valor de ponto flutuante, ele permite precisão no nível de pixel. Basta aplicar a seguinte fórmula para calcular o percentual:

percentage = (100 * <desired_pixel_height>) / <screen_height>

Por exemplo, para alterar a altura para 56,783%, você definiria o seguinte valor do Registro:

set OskRootKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK
reg.exe ADD "%OskRootKey%" /v MaxHeightPercentage /t REG_SZ /d "56.783" /f

ou do PowerShell:

set OskRootKey "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK"
cd $OskRootKey
Set-ItemProperty -Path . -Name MaxHeightPercentage -Type String -Value 56.783

Observação

O tipo de valor do Registro deve ser um String (REG_SZ), para que os valores fracionários possam ser representados com. um ponto decimal. O uso de DWord (REG_DWORD) não funcionará, mesmo para percentuais de número inteiro.

Preferências adicionais

O conjunto restante de preferências é Valores de cadeia de caracteres na subchave Preferências:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK\Preferences
Valor do Registro Valor padrão Descrição
AudioFeedback_Disabled "0" "0" permite que a chave clique em comentários de áudio; "1" o desabilita.
Dictation_Disabled "1" "0" mostra o botão ditado (reconhecimento de voz) ; "1" o oculta. (consulte a observação abaixo)
KeyboardModeEnabled_full "0" "0" desabilita o modo de teclado completo; "1" permite isso.
KeyboardModeEnabled_narrow "1" "0" desabilita o modo de teclado estreito; "1" permite isso.
KeyboardModeEnabled_wide "1" "0" desabilita o modo de teclado largo; "1" permite isso.
ModeOrder "wide;narrow;full" A ordem (da esquerda para a direita) na qual os modos são listados no menu suspenso do modo, se habilitado
SettingsMenuKey_Collapsed "0" Oculta o menu suspenso do modo. Defina isso como "1" se apenas um modo estiver habilitado.
Paste_Disabled "0" "0" mostra o botão Colar; "1" o oculta. A alteração entra em vigor após a reinicialização.
CloseButton_Disabled "0" "0" mostra o botão Fechar; "1" oculta o botão Fechar. A alteração entra em vigor após a reinicialização.
EmojiKeyEnabled "0" "0" oculta a tecla Emoji; "1" mostra isso, permitindo que o usuário insira caracteres emoji.

Observação

O modo de ditado requer que um pacote de fala seja instalado para o idioma de entrada selecionado, bem como um dispositivo de entrada de áudio. Se um pacote de fala correspondente não estiver instalado, o botão de ditado não será mostrado.

Todas as imagens incluem a linguagem de fala en-US. Outros pacotes de fala são instalados como recursos opcionais. Para obter mais informações sobre recursos de IoT, consulte Guia de fabricação de IoT Core e Lista de Recursosdo IoT Core.

Por exemplo, para habilitar apenas wide o modo de teclado, no PowerShell, você pode fazer o seguinte:

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"