Usar el ámbito de entrada para cambiar el teclado táctil

Para ayudar a los usuarios a escribir datos con el teclado táctil o con el panel de entrada de software (SIP), puedes establecer el ámbito de entrada del control de texto para que coincida con el tipo de datos que se espera que escriba el usuario.

API importantes

El teclado táctil se puede usar para escribir texto cuando la aplicación se ejecuta en un dispositivo con pantalla táctil. El teclado táctil se invoca cuando el usuario pulsa un campo de entrada editable, como TextBox o RichEditBox. Para que los usuarios puedan escribir datos en la aplicación de forma mucho más rápida y sencilla, establezca el ámbito de entrada del control de texto para que coincida con el tipo de datos que espera que introduzca el usuario. El ámbito de entrada proporciona una sugerencia al sistema sobre el tipo de entrada de texto que espera el control para que el sistema pueda proporcionar un diseño de táctil especializado para el tipo de entrada.

Por ejemplo, si un cuadro de texto se usa únicamente para escribir un PIN de 4 dígitos, establece la propiedad InputScope en Number. Esto indica al sistema que debe mostrar el diseño de teclado numérico, lo cual facilita al usuario la entrada del PIN.

Importante

  • Esto solo se aplica solo a SIP. No se aplica a los teclados de hardware ni al teclado en pantalla disponible en las opciones de accesibilidad de Windows.
  • El ámbito de entrada no implica que se realice ninguna validación de entrada ni evita que el usuario realice cualquier entrada a través de un teclado de hardware u otro dispositivo de entrada. Sigues siendo responsable de la validación de la entrada en el código, según sea necesario.

Cambio del ámbito de entrada de un control de texto

Los ámbitos de entrada que están disponibles para la aplicación son miembros de la enumeración InputScopeNameValue. Puede establecer la propiedad InputScope de elemento TextBox o RichEditBox en uno de estos valores.

Importante

La propiedad InputScope de PasswordBox solo admite los valores Password y NumericPin. Cualquier otro valor se ignora.

Aquí, cambiará el ámbito de entrada de varios cuadros de texto para que coincidan con los datos previstos para cada cuadro de texto.

Para cambiar el ámbito de entrada en XAML

  1. En el archivo XAML de la página, busque la etiqueta del control de texto que quiere cambiar.

  2. Agregue el atributo InputScope a la etiqueta y especifique el valor InputScopeNameValue que coincide con la entrada esperada.

    Estos son algunos cuadros de texto que pueden aparecer en un formulario común de contacto del cliente. Con el conjunto InputScope, se muestra un teclado táctil con un diseño adecuado para los datos para cada cuadro 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 cambiar el ámbito de entrada en el código

  1. En el archivo XAML de la página, busque la etiqueta del control de texto que quiere cambiar. Si no está establecido, establezca el atributo x:Name para que pueda hacer referencia al control en el código.

    <TextBox Header="Telephone Number" x:Name="phoneNumberTextBox"/>
    
  2. Cree una instancia de un nuevo objeto InputScope.

    InputScope scope = new InputScope();
    
  3. Cree una instancia de un nuevo objeto InputScopeName.

    InputScopeName scopeName = new InputScopeName();
    
  4. Establezca la propiedad NameValue del objeto InputScopeName en un valor de la enumeración InputScopeNameValue.

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. Agregue el objeto InputScopeName a la colección Names del objeto InputScope.

    scope.Names.Add(scopeName);
    
  6. Establezca el objeto InputScope como valor de la propiedad InputScope del control de texto.

    phoneNumberTextBox.InputScope = scope;
    

Este es el código completo.

InputScope scope = new InputScope();
InputScopeName scopeName = new InputScopeName();
scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
scope.Names.Add(scopeName);
phoneNumberTextBox.InputScope = scope;

Los mismos pasos se pueden condensar en este código breve.

phoneNumberTextBox.InputScope = new InputScope() 
{
    Names = {new InputScopeName(InputScopeNameValue.TelephoneNumber)}
};

Predicción de texto, revisión ortográfica y corrección automática

Los controles TextBox y RichEditBox tienen varias propiedades que influyen en el comportamiento del SIP. Para proporcionar la mejor experiencia para los usuarios, es importante comprender cómo afectan estas propiedades a la entrada de texto mediante la función táctil.

  • IsSpellCheckEnabled: cuando la revisión ortográfica está habilitada para un control de texto, este interactúa con el motor de revisión ortográfica del sistema para marcar las palabras que no se reconocen. Puede pulsar una palabra para ver una lista de correcciones sugeridas. La revisión ortográfica está habilitada de manera predeterminada.

    Para el ámbito de entrada Default, esta propiedad también habilita la mayúsculas y minúsculas automáticas de la primera palabra en una frase y la corrección automática de palabras a medida que escribe. Estas características de corrección automática pueden deshabilitarse en otros ámbitos de entrada. Para más información, consulte las tablas más adelante en este tema.

  • IsTextPredictionEnabled: cuando la predicción de texto está habilitada para un control de texto, el sistema muestra una lista de palabras se podrían empezar a escribir. Puede seleccionar de la lista para que no tenga que escribir toda la palabra. La predicción de texto está habilitada de manera predeterminada.

    La predicción de texto puede deshabilitarse si el ámbito de entrada es distinto de Default, incluso si la propiedad IsTextPredictionEnabled es true. Para más información, consulte las tablas más adelante en este tema.

  • PreventKeyboardDisplayOnProgrammaticFocus: cuando esta propiedad es true, evita que el sistema muestre el SIP cuando el foco se establece mediante programación en un control de texto. En su lugar, el teclado solo se muestra cuando el usuario interactúa con el control.

Índice de teclado táctil para Windows

Estas tablas muestran los diseños del panel de entrada de software (SIP) de Windows para los valores comunes del ámbito de entrada. El efecto del ámbito de entrada en las características habilitadas por las IsSpellCheckEnabled y IsTextPredictionEnabled se muestra para cada ámbito de entrada. Esta no es una lista completa de los ámbitos de entrada disponibles.

Sugerencia

Puede alternar la mayoría de los teclados táctiles entre una disposición alfabética y una disposición de números y símbolos al presionar la tecla &123 para cambiar a la disposición de números y símbolos, y presione la tecla abcd para cambiar a la disposición alfabético.

Valor predeterminado

<TextBox InputScope="Default"/>

Teclado táctil predeterminado de Windows.

Default Windows touch keyboard

  • Revisión ortográfica: habilitada si IsSpellCheckEnabled = true, deshabilitado si IsSpellCheckEnabled = false
  • Corrección automática: habilitada si IsSpellCheckEnabled = true, deshabilitada si IsSpellCheckEnabled = false
  • Uso de mayúsculas automático: habilitado si IsSpellCheckEnabled = true, deshabilitado si IsSpellCheckEnabled = false
  • Predicción de texto: habilitada si IsTextPredictionEnabled = true, deshabilitada si IsTextPredictionEnabled = false

CurrencyAmountAndSymbol

<TextBox InputScope="CurrencyAmountAndSymbol"/>

Disposición predeterminada del teclado de números y símbolos.

Windows touch keyboard for currency

  • Incluye las teclas izquierda o derecha de la página para mostrar más símbolos
  • Revisión ortográfica: activada de manera predeterminada, se puede deshabilitar
  • Corrección automática: activada de manera predeterminada, se puede deshabilitar
  • Uso automático de mayúsculas: siempre deshabilitado
  • Predicción de texto: activada de manera predeterminada, se puede deshabilitar

Url

<TextBox InputScope="Url"/>

Windows touch keyboard for URLs

  • Incluye las teclas .com e go key (Ir). Mantenga presionada la tecla .com para mostrar opciones adicionales (.org, .net y sufijos específicos de la región)
  • Incluye las teclas :, - y /
  • Revisión ortográfica: desactivada de manera predeterminada, se puede habilitar
  • Corrección automática: desactivada de manera predeterminada, se puede habilitar
  • Uso de mayúsculas automático: desactivado de manera predeterminada, se puede habilitar
  • Predicción de texto: desactivada de manera predeterminada

EmailSmtpAddress

<TextBox InputScope="EmailSmtpAddress"/>

Windows touch keyboard for email addresses

  • Incluye las teclas @ y .com. Mantenga presionada la tecla .com para mostrar opciones adicionales (.org, .net y sufijos específicos de la región)
  • Incluye las teclas _ y -
  • Revisión ortográfica: desactivada de manera predeterminada, se puede habilitar
  • Corrección automática: desactivada de manera predeterminada, se puede habilitar
  • Uso de mayúsculas automático: desactivado de manera predeterminada, se puede habilitar
  • Predicción de texto: desactivada de manera predeterminada

Número

<TextBox InputScope="Number"/>

Windows touch keyboard for numbers

  • Revisión ortográfica: activada de manera predeterminada, se puede deshabilitar
  • Corrección automática: activada de manera predeterminada, se puede deshabilitar
  • Uso automático de mayúsculas: siempre deshabilitado
  • Predicción de texto: activada de manera predeterminada, se puede deshabilitar

TelephoneNumber

<TextBox InputScope="TelephoneNumber"/>

Windows touch keyboard for telephone numbers

  • Revisión ortográfica: activada de manera predeterminada, se puede deshabilitar
  • Corrección automática: activada de manera predeterminada, se puede deshabilitar
  • Uso automático de mayúsculas: siempre deshabilitado
  • Predicción de texto: activada de manera predeterminada, se puede deshabilitar

<TextBox InputScope="Search"/>

Windows touch keyboard for search

  • Incluye la tecla Buscar en lugar de la tecla Entrar
  • Revisión ortográfica: activada de manera predeterminada, se puede deshabilitar
  • Corrección automática: activada de manera predeterminada, se puede deshabilitar
  • Uso de mayúsculas automático: siempre deshabilitado
  • Predicción de texto: activada de manera predeterminada, se puede deshabilitar

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

Windows touch keyboard for incremental search

  • Misma disposición que el valor predeterminado
  • Revisión ortográfica: desactivada de manera predeterminada, se puede habilitar
  • Corrección automática: siempre deshabilitada
  • Uso automático de mayúsculas: siempre deshabilitado
  • Predicción de texto: siempre deshabilitado

Fórmula

<TextBox InputScope="Formula"/>

Windows touch keyboard for formula

  • Incluye la tecla =
  • También incluye las teclas %, $ y +
  • Revisión ortográfica: activada de manera predeterminada, se puede deshabilitar
  • Corrección automática: activada de manera predeterminada, se puede deshabilitar
  • Uso automático de mayúsculas: siempre deshabilitado
  • Predicción de texto: activada de manera predeterminada, se puede deshabilitar

Charlar

<TextBox InputScope="Chat"/>

Default Windows touch keyboard

  • Misma disposición que el valor predeterminado
  • Revisión ortográfica: activada de manera predeterminada, se puede deshabilitar
  • Corrección automática: activada de manera predeterminada, se puede deshabilitar
  • Uso de mayúsculas automático: activado de manera predeterminada, se puede deshabilitar
  • Predicción de texto: activada de manera predeterminada, se puede deshabilitar

NameOrPhoneNumber

<TextBox InputScope="NameOrPhoneNumber"/>

Default Windows touch keyboard

  • Misma disposición que el valor predeterminado
  • Revisión ortográfica: desactivada de manera predeterminada, se puede habilitar
  • Corrección automática: desactivada de manera predeterminada, se puede habilitar
  • Uso de mayúsculas automático: desactivado de manera predeterminada, se puede habilitar (la primera letra de cada palabra está en mayúsculas)
  • Predicción de texto: desactivada de manera predeterminada