Nella demo di oggi vediamo come usare il sistema SIP (Software Input Panel) e cambiare il tipo di tastiera che apparirà quando apriamo il pannello di inserimento in una textbox o in altri controlli dove è possibile immettere del testo. Il SIP è quel componente che gestisce la comparsa e la scomparsa della tastiera virtuale quando facciamo tap su un controllo che prevede l'inserimento del testo.
Di norma la tastiera che ci verrà presentata è una tastiera standard che può andare bene per un uso generico, noi possiamo personalizzare questo comportamento settando sul controllo che ci interessa l'input scope adatto alla situazione. Gli input scope sono rappresentati da un enumerator che contiente più di 50 valori molti dei quali non verranno mai usati. Nel caso però, in cui avremo bisogno di un campo per l'inserimento di un numero di telefono potremo usare l'input scope TelephoneNumber che farà apparire una tastiera esclusivamente numerica (come da screenshot).

Settare un input scope su un controllo non cambia solo l'apparenza del SIP ma ne cambia anche le funzionalità, ad esempio l'input scope di default fa poco per aiutare l'utente ma se impostiamo l'input scope su Text verranno attivate anche delle funzionalità come l'auto-completamento, il maiuscolo sulla prima lettera ed altre utili funzionalità. La personalizzazione dell'input scope può essere fatta sia a livello di xaml sia programmaticamente con c#, vediamo come:
Versione XAML:
<TextBox Height="72" HorizontalAlignment="Center" Margin="0,85,0,0" Name="textBox1" Text="Email Input Scope" VerticalAlignment="Top" Width="460">
<TextBox.InputScope>
<InputScope>
<InputScopeName NameValue="EmailUserName" />
</InputScope>
</TextBox.InputScope>
</TextBox>
Versione c#
InputScope inputScope = new InputScope();
InputScopeName inputScopeName = new InputScopeName();
inputScopeName.NameValue = InputScopeNameValue.TelephoneNumber;
inputScope.Names.Add(inputScopeName);
textBox2.InputScope = inputScope;
Qui di seguito una lista degli input scoper più utilizzati:
|
Keyboard Type
|
Layout
|
|
Default
|
Standard QWERTY layout
|
|
Text
|
Standard layout with ASCII-based emoticons
|
|
E-mail Address
|
Standard layout with .com and @ keys
|
|
Phone Number
|
Typical 12-key layout
|
|
Web Address
|
Standard layout with .com key and customized Enter key
|
|
Maps
|
Standard layout with a customized Enter key
|
|
Search
|
Semi-transparent layout with a Search and .com key
|
|
SMS Address
|
Standard layout with easy access to phone number layout
|