Usar o escopo de entrada para alterar o teclado virtual
Para ajudar os usuários a inserir dados usando o teclado virtual ou SIP (Soft Input Panel), você pode configurar o escopo de entrada do controle de texto para corresponder ao tipo de dado que se espera que o usuário insira.
APIs importantes
O teclado virtual pode ser usado para entrada de texto, quando o aplicativo é executado em um dispositivo com tela sensível ao toque. O teclado virtual é invocado quando o usuário toca em um campo de entrada editável, como um TextBox ou um RichEditBox. É possível tornar a entrada de dados muito mais rápida e fácil para os usuários em seu aplicativo definindo o escopo de entrada do controle de texto para corresponder ao tipo de dados que o usuário deve inserir. O escopo de entrada oferece uma dica para o sistema sobre o tipo de entrada de texto esperado pelo controle, para que o sistema possa fornecer um layout de teclado virtual especializado para o tipo de entrada.
Por exemplo, se uma caixa de texto for usada somente para a inserção de um PIN de 4 dígitos, defina a propriedade InputScope como Number. Isso informa o sistema para mostrar o layout do teclado numérico, facilitando a inserção do PIN.
Importante
- Essas informações se aplicam somente ao SIP. Elas não se aplicam a teclados de hardware ou ao teclado virtual disponível nas opções de Facilidade de Acesso do Windows.
- O escopo de entrada não faz com que validações de entrada sejam executadas e não impede que o usuário forneça entradas por meio de um teclado de hardware nem de outro dispositivo de entrada. Você ainda é o responsável pela validação da entrada em seu código, conforme necessário.
Alterar o escopo de entrada de um controle de texto
Os escopos de entrada disponíveis para o aplicativo são membros da enumeração InputScopeNameValue. É possível definir a propriedade InputScope de um TextBox ou RichEditBox como um desses valores.
Importante
A propriedade InputScope em PasswordBox oferece suporte apenas aos valores Password e NumericPin. Qualquer outro valor é ignorado.
Aqui, é possível alterar o escopo de entrada de várias caixas de texto para corresponder aos dados esperados para cada caixa de texto.
Para alterar o escopo de entrada em XAML
No arquivo XAML da página, localize a marca do controle de texto que você deseja alterar.
Adicione o atributo InputScope à tag e especifique o valor InputScopeNameValue que corresponde à entrada esperada.
Veja aqui algumas caixas de texto que podem aparecer em um formulário de contato do cliente comum. Com o InputScope definido, um teclado virtual com um layout adequado para os dados é exibido para cada caixa de texto.
<StackPanel Width="300"> <TextBox Header="Name" InputScope="Default"/> <TextBox Header="Email Address" InputScope="EmailSmtpAddress"/> <TextBox Header="Telephone Number" InputScope="TelephoneNumber"/> <TextBox Header="Web site" InputScope="Url"/> </StackPanel>
Para alterar o escopo de entrada no código
No arquivo XAML da página, localize a marca do controle de texto que você deseja alterar. Se ele não estiver definido, defina o atributo x:Name para que poder fazer referência ao controle no código.
<TextBox Header="Telephone Number" x:Name="phoneNumberTextBox"/>
Instancie um novo objeto InputScope.
InputScope scope = new InputScope();
Instancie um novo objeto InputScopeName.
InputScopeName scopeName = new InputScopeName();
Defina a propriedade NameValue do objeto InputScopeName como um valor da enumeração InputScopeNameValue.
scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
Adicione o objeto InputScopeName à coleção Names do objeto InputScope.
scope.Names.Add(scopeName);
Defina o objeto InputScope como o valor da propriedade InputScope do controle de texto.
phoneNumberTextBox.InputScope = scope;
Veja aqui o código inteiro junto.
InputScope scope = new InputScope();
InputScopeName scopeName = new InputScopeName();
scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
scope.Names.Add(scopeName);
phoneNumberTextBox.InputScope = scope;
As mesmas etapas podem ser condensadas neste código abreviado.
phoneNumberTextBox.InputScope = new InputScope()
{
Names = {new InputScopeName(InputScopeNameValue.TelephoneNumber)}
};
Previsão de texto, verificação ortográfica e correção automática
Os controles TextBox e RichEditBox têm várias propriedades que influenciam o comportamento do SIP. Para oferecer a melhor experiência para os usuários, é importante entender como essas propriedades afetam a entrada de texto usando o toque.
IsSpellCheckEnabled - Quando a verificação ortográfica está habilitada para um controle de texto, o controle interage com o mecanismo de verificação ortográfica do sistema para marcar palavras que não são reconhecidas. É possível tocar em uma palavra para ver uma lista de correções sugeridas. Por padrão, a verificação ortográfica está habilitada.
Para o escopo de entrada Padrão, essa propriedade também permite o uso de maiúsculas automático na primeira palavra de uma frase e a correção automática de palavras à medida que você digita. Esses recursos de correção automática podem ser desabilitados em outros escopos de entrada. Para obter mais informações, consulte as tabelas mais adiante neste tópico.
IsTextPredictionEnabled - Quando a previsão de texto está habilitada para um controle de texto, o sistema mostra uma lista de palavras que você possa estar começando a digitar. É possível selecionar na lista para não precisar digitar a palavra inteira. Por padrão, a previsão de texto está habilitada.
A previsão de texto pode ser desabilitada se o escopo de entrada for diferente de Padrão, mesmo se a propriedade IsTextPredictionEnabled for true. Para obter mais informações, consulte as tabelas mais adiante neste tópico.
PreventKeyboardDisplayOnProgrammaticFocus - Quando essa propriedade é true, ela impede que o sistema mostre o SIP quando o foco é definido programaticamente em um controle de texto. Em vez disso, o teclado é mostrado somente quando o usuário interage com o controle.
Índice do teclado virtual para Windows
Essas tabelas mostram os layouts SIP (Painel de Entrada Flexível) do Windows para valores de escopo de entrada comuns. O efeito do escopo de entrada nos recursos habilitados pelas propriedades IsSpellCheckEnabled e IsTextPredictionEnabled é listado para cada escopo de entrada. Esta não é uma lista abrangente de escopos de entrada disponíveis.
Dica
É possível alternar a maioria dos teclados sensíveis ao toque entre um layout alfabético e um layout de números e símbolos pressionando a tecla &123 para alterar para o layout de números e símbolos e pressionando a tecla abcd para alterar para o layout alfabético.
Padrão
<TextBox InputScope="Default"/>
O teclado virtual padrão do Windows.
- Verificação ortográfica: habilitada se IsSpellCheckEnabled = true, e desabilitada se IsSpellCheckEnabled = false
- Correção automática: habilitada se IsSpellCheckEnabled = true, e desabilitada se IsSpellCheckEnabled = false
- Uso de maiúsculas automático: habilitado se IsSpellCheckEnabled = true, e desabilitado se IsSpellCheckEnabled = false
- Previsão de texto: habilitada se IsTextPredictionEnabled = true, e desabilitada se IsTextPredictionEnabled = false
CurrencyAmountAndSymbol
<TextBox InputScope="CurrencyAmountAndSymbol"/>
O layout do teclado padrão de números e símbolos.
- Inclui teclas esquerda/direita da página para exibir mais símbolos
- Verificação ortográfica: habilitada por padrão, pode ser desabilitada
- Correção automática: habilitada por padrão, pode ser desabilitada
- Uso de maiúsculas automático: sempre desabilitado
- Previsão de texto: habilitada por padrão, pode ser desabilitada
Url
<TextBox InputScope="Url"/>
- Inclui as teclas .com e (Go). Pressione e mantenha pressionada a tecla .com para exibir opções adicionais (.org, .net e sufixos específicos da região)
- Inclui as teclas :, - e /
- Verificação ortográfica: desabilitada por padrão, pode ser habilitada
- Correção automática: desabilitada por padrão, pode ser habilitada
- Uso de maiúsculas automático: desabilitado por padrão, pode ser habilitado
- Previsão de texto: desabilitada por padrão, pode ser habilitada
EmailSmtpAddress
<TextBox InputScope="EmailSmtpAddress"/>
- Inclui as teclas @ e .com. Pressione e mantenha pressionada a tecla .com para exibir opções adicionais (.org, .net e sufixos específicos da região)
- Inclui as teclas _ e -
- Verificação ortográfica: desabilitada por padrão, pode ser habilitada
- Correção automática: desabilitada por padrão, pode ser habilitada
- Uso de maiúsculas automático: desabilitado por padrão, pode ser habilitado
- Previsão de texto: desabilitada por padrão, pode ser habilitada
Número
<TextBox InputScope="Number"/>
- Verificação ortográfica: habilitada por padrão, pode ser desabilitada
- Correção automática: habilitada por padrão, pode ser desabilitada
- Uso de maiúsculas automático: sempre desabilitado
- Previsão de texto: habilitada por padrão, pode ser desabilitada
TelephoneNumber
<TextBox InputScope="TelephoneNumber"/>
- Verificação ortográfica: habilitada por padrão, pode ser desabilitada
- Correção automática: habilitada por padrão, pode ser desabilitada
- Uso de maiúsculas automático: sempre desabilitado
- Previsão de texto: habilitada por padrão, pode ser desabilitada
Pesquisar
<TextBox InputScope="Search"/>
- Inclui a tecla termo de pesquisa em vez da tecla Enter
- Verificação ortográfica: habilitada por padrão, pode ser desabilitada
- Correção automática: habilitada por padrão, pode ser desabilitada
- Uso de maiúsculas automático: sempre desabilitado
- Previsão de texto: habilitada por padrão, pode ser desabilitada
SearchIncremental
<TextBox InputScope="SearchIncremental"/>
- Mesmo layout que Padrão
- Verificação ortográfica: desabilitada por padrão, pode ser habilitada
- Correção automática: sempre desabilitada
- Uso de maiúsculas automático: sempre desabilitado
- Previsão de texto: sempre desabilitada
Fórmula
<TextBox InputScope="Formula"/>
- Inclui a tecla =
- Também inclui as teclas %, $ e +
- Verificação ortográfica: habilitada por padrão, pode ser desabilitada
- Correção automática: habilitada por padrão, pode ser desabilitada
- Uso de maiúsculas automático: sempre desabilitado
- Previsão de texto: habilitada por padrão, pode ser desabilitada
Chat
<TextBox InputScope="Chat"/>
- Mesmo layout que Padrão
- Verificação ortográfica: habilitada por padrão, pode ser desabilitada
- Correção automática: habilitada por padrão, pode ser desabilitada
- Uso de maiúsculas automático: habilitado por padrão, pode ser desabilitado
- Previsão de texto: habilitada por padrão, pode ser desabilitada
NameOrPhoneNumber
<TextBox InputScope="NameOrPhoneNumber"/>
- Mesmo layout que Padrão
- Verificação ortográfica: desabilitada por padrão, pode ser habilitada
- Correção automática: desabilitada por padrão, pode ser habilitada
- Uso de maiúsculas automático: desabilitado por padrão, pode ser habilitado (a primeira letra de cada palavra é maiúscula)
- Previsão de texto: desabilitada por padrão, pode ser habilitada
Windows developer