Usare l'ambito di input per modificare la tastiera virtuale

Per aiutare gli utenti a immettere dati con la tastiera virtuale, o SIP (Soft Input Panel), puoi impostare l'ambito di input del controllo di testo in modo che corrisponda al tipo di dati che l'utente deve immettere.

API importanti

La tastiera virtuale può essere usata per l'immissione del testo quando l'app viene eseguita su un dispositivo dotato di touchscreen. La tastiera virtuale viene richiamata quando l'utente tocca un campo di input modificabile, ad esempio un controllo TextBox o RichEditBox. È possibile facilitare e velocizzare notevolmente l'immissione dei dati nell'app impostando l'ambito di input del controllo di testo in base al tipo di dati che si prevede che l'utente immetta. L'ambito di input fornisce al sistema un suggerimento sul tipo di input di testo previsto dal controllo, in modo che il sistema possa fornire un layout di tastiera virtuale specifico per il tipo di input.

Ad esempio, se una casella di testo viene usata solo per immettere un PIN di 4 cifre, imposta la proprietà InputScope su Number. In questo modo dai indicazione al sistema di mostrare il layout con il tastierino numerico, che rende più semplice l'immissione del PIN da parte dell'utente.

Importante

  • Questa informazione si applica solo al SIP. Non si applica alle tastiere hardware o alla tastiera su schermo disponibile nelle opzioni Accessibilità di Windows.
  • L'ambito di input non comporta l'esecuzione di alcuna convalida dell'input e non impedisce all'utente di fornire qualsiasi input tramite una tastiera hardware o un altro dispositivo di input. Rimane una tua responsabilità convalidare l'input nel codice secondo le necessità.

Modifica dell'ambito di input di un controllo di testo

Gli ambiti di input disponibili per l'app sono membri dell'enumerazione InputScopeNameValue. È possibile impostare la proprietà InputScope di un controllo TextBox o RichEditBox a uno di questi valori.

Importante

La proprietà InputScope in PasswordBox supporta solo i valori Password e NumericPin. Qualsiasi altro valore viene ignorato.

In questo esempio, si modifica l'ambito di input di diverse caselle di testo in modo che corrispondano ai dati previsti per ogni casella di testo.

Per modificare l'ambito di input in XAML

  1. Nel file XAML della pagina individuare il tag per il controllo di testo che si vuole modificare.

  2. Aggiungere l'attributo InputScope al tag e specificare il valore InputScopeNameValue corrispondente all'input previsto.

    Ecco alcune caselle di testo che potrebbero essere visualizzate in una comune maschera di contatto del cliente. Con InputScope impostato, compare una tastiera virtuale con un layout appropriato per i dati visualizzati per ogni casella di testo.

    <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>
    

Per modificare l'ambito di input nel codice

  1. Nel file XAML della pagina individuare il tag per il controllo di testo che si vuole modificare. Se non è impostato, impostare l'attributo x:Name in modo da poter fare riferimento al controllo nel codice.

    <TextBox Header="Telephone Number" x:Name="phoneNumberTextBox"/>
    
  2. Creare un'istanza di un nuovo oggetto InputScope.

    InputScope scope = new InputScope();
    
  3. Creare un'istanza di un nuovo oggetto InputScopeName.

    InputScopeName scopeName = new InputScopeName();
    
  4. Impostare la proprietà NameValue dell'oggetto InputScopeName su un valore dell'enumerazione InputScopeNameValue.

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. Aggiungere l'oggetto InputScopeName all'insieme Names dell'oggetto InputScope.

    scope.Names.Add(scopeName);
    
  6. Impostare l'oggetto InputScope come valore della proprietà InputScope del controllo di testo.

    phoneNumberTextBox.InputScope = scope;
    

Ecco il codice tutto insieme.

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

Gli stessi passaggi possono essere condensati in questo codice abbreviato.

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

predizione del testo, controllo ortografico e correzione automatica

I controlli TextBox e RichEditBox hanno diverse proprietà che influenzano il comportamento del SIP. Per offrire agli utenti un'esperienza ottimale, è importante comprendere in che modo queste proprietà influiscono sull'input di testo usando il tocco.

  • IsSpellCheckEnabled: quando il controllo ortografico è abilitato per un controllo di testo, il controllo interagisce con il motore di controllo ortografico del sistema per contrassegnare le parole non riconosciute. È possibile toccare una parola per visualizzare un elenco di correzioni suggerite. Il controllo ortografico è abilitato per impostazione predefinita.

    Per l'ambito di input Predefinito , questa proprietà abilita anche la maiuscola automatica della prima parola in una frase e la correzione automatica delle parole durante la digitazione. Queste funzionalità di correzione automatica potrebbero essere disabilitate in altri ambiti di input. Per ulteriori informazioni, vedere le tabelle più avanti in questa sezione.

  • IsTextPredictionEnabled: quando la predizione del testo è abilitata per un controllo di testo, il sistema visualizza un elenco di parole che corrispondono a quanto l'utente ha iniziato a digitare. È possibile selezionare dall'elenco in modo che non sia necessario digitare l'intera parola. La predizione del testo è abilitata per impostazione predefinita.

    La predizione del testo potrebbe essere disabilitata se l'ambito di input è diverso da Default, anche se la proprietà IsTextPredictionEnabled è impostata a true. Per ulteriori informazioni, vedere le tabelle più avanti in questa sezione.

  • PreventKeyboardDisplayOnProgrammaticFocus: quando questa proprietà è impostata a true, impedisce al sistema di visualizzare il SIP quando lo stato attivo è impostato a livello di codice su un controllo di testo. La tastiera viene invece visualizzata solo quando l'utente interagisce con il controllo .

Indice della tastiera virtuale per Windows

Queste tabelle mostrano i layout SIP (Soft Input Panel) di Windows per i valori comuni dell'ambito di input. Per ogni ambito di input è elencato il relativo effetto sulle funzionalità abilitate dalle proprietà IsSpellCheckEnabled e IsTextPredictionEnabled. Non si tratta di un elenco completo degli ambiti di input disponibili.

Suggerimento

È possibile alternare la maggior parte delle tastiere touch tra un layout alfabetico e un layout comprensivo di numeri e simboli premendo il tasto &123 per passare al layout numeri e simboli e premendo il tasto abcd per passare al layout alfabetico.

Default

<TextBox InputScope="Default"/>

Tastiera virtuale di Windows predefinita.

Default Windows touch keyboard

  • Controllo ortografico: abilitato se IsSpellCheckEnabled = è impostato a true, disabilitato se IsSpellCheckEnabled = è impostato a false
  • Correzione automatica: abilitata se IsSpellCheckEnabled = è impostato a true, disabilitata se IsSpellCheckEnabled = è impostato a false
  • Maiuscola automatica: abilitata se IsSpellCheckEnabled = è impostato a true, disabilitata se IsSpellCheckEnabled = è impostato a false
  • Predizione del testo: abilitata se IsTextPredictionEnabled = è impostato a true, disabilitata se IsTextPredictionEnabled = è impostato a false

CurrencyAmountAndSymbol

<TextBox InputScope="CurrencyAmountAndSymbol"/>

I numeri predefiniti e il layout di tastiera dei simboli.

Windows touch keyboard for currency

  • Include i tasti di pagina a sinistra/destra per visualizzare altri simboli
  • Controllo ortografico: attivato per impostazione predefinita, può essere disabilitato
  • Correzione automatica: attivata per impostazione predefinita, può essere disabilitata
  • Maiuscola automatica: sempre disabilitata
  • Predizione del testo: attivata per impostazione predefinita, può essere disabilitata

Url

<TextBox InputScope="Url"/>

Windows touch keyboard for URLs

  • Include i tasti .com e go key (Go). Tenere premuto il tasto .com per visualizzare opzioni aggiuntive (.org, .net e suffissi specifici dell'area)
  • Include i tasti :, - e /
  • Controllo ortografico: disattivato per impostazione predefinita, può essere abilitato
  • Correzione automatica: disattivata per impostazione predefinita, può essere abilitata
  • Maiuscola automatica: disattivata per impostazione predefinita, può essere abilitata
  • Predizione del testo: disattivata per impostazione predefinita, può essere abilitata

EmailSmtpAddress

<TextBox InputScope="EmailSmtpAddress"/>

Windows touch keyboard for email addresses

  • Include i tasti @ e .com. Tenere premuto il tasto .com per visualizzare opzioni aggiuntive (.org, .net e suffissi specifici dell'area)
  • Include i tasti _ e -
  • Controllo ortografico: disattivato per impostazione predefinita, può essere abilitato
  • Correzione automatica: disattivata per impostazione predefinita, può essere abilitata
  • Maiuscola automatica: disattivata per impostazione predefinita, può essere abilitata
  • Predizione del testo: disattivata per impostazione predefinita, può essere abilitata

Numero

<TextBox InputScope="Number"/>

Windows touch keyboard for numbers

  • Controllo ortografico: attivato per impostazione predefinita, può essere disabilitato
  • Correzione automatica: attivata per impostazione predefinita, può essere disabilitata
  • Maiuscola automatica: sempre disabilitata
  • Predizione del testo: attivata per impostazione predefinita, può essere disabilitata

TelephoneNumber

<TextBox InputScope="TelephoneNumber"/>

Windows touch keyboard for telephone numbers

  • Controllo ortografico: attivato per impostazione predefinita, può essere disabilitato
  • Correzione automatica: attivata per impostazione predefinita, può essere disabilitata
  • Maiuscola automatica: sempre disabilitata
  • Predizione del testo: attivata per impostazione predefinita, può essere disabilitata

<TextBox InputScope="Search"/>

Windows touch keyboard for search

  • Include il tasto Cerca anziché il tasto Invio
  • Controllo ortografico: attivato per impostazione predefinita, può essere disabilitato
  • Correzione automatica: attivata per impostazione predefinita, può essere disabilitata
  • Maiuscola automatica: sempre disabilitata
  • Predizione del testo: attivata per impostazione predefinita, può essere disabilitata

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

Windows touch keyboard for incremental search

  • Stesso layout di Default
  • Controllo ortografico: disattivato per impostazione predefinita, può essere abilitato
  • Correzione automatica: sempre disabilitata
  • Maiuscola automatica: sempre disabilitata
  • Predizione del testo: sempre disabilitata

Formula

<TextBox InputScope="Formula"/>

Windows touch keyboard for formula

  • Include il tasto =
  • Include anche i tasti %, $ e +
  • Controllo ortografico: attivato per impostazione predefinita, può essere disabilitato
  • Correzione automatica: attivata per impostazione predefinita, può essere disabilitata
  • Maiuscola automatica: sempre disabilitata
  • Predizione del testo: attivata per impostazione predefinita, può essere disabilitata

Chat

<TextBox InputScope="Chat"/>

Default Windows touch keyboard

  • Stesso layout di Default
  • Controllo ortografico: attivato per impostazione predefinita, può essere disabilitato
  • Correzione automatica: attivata per impostazione predefinita, può essere disabilitata
  • Maiuscola automatica: attivata per impostazione predefinita, può essere disabilitata
  • Predizione del testo: attivata per impostazione predefinita, può essere disabilitata

NameOrPhoneNumber

<TextBox InputScope="NameOrPhoneNumber"/>

Default Windows touch keyboard

  • Stesso layout di Default
  • Controllo ortografico: disattivato per impostazione predefinita, può essere abilitato
  • Correzione automatica: disattivata per impostazione predefinita, può essere abilitata
  • Maiuscola automatica: disattivata per impostazione predefinita, può essere abilitata (la prima lettera di ogni parola è resa maiuscola)
  • Predizione del testo: disattivata per impostazione predefinita, può essere abilitata