/ / Come impostare la scheda Indice in windows phone 8.1 - windows-phone-8.1

Come impostare la scheda Indice in windows phone 8.1 - windows-phone-8.1

Ho 3 caselle di testo nella mia pagina app e voglioimposta un indice tab per loro in modo che quando l'utente preme il tasto invio dalla tastiera, dovrebbe passare alla casella di testo successiva. Ho impostato la proprietà Tab Index di TextBox ma non funziona.

risposte:

1 per risposta № 1

Funziona per Windows Phone 8.1 app con il seguente codice.

private void OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key==Windows.System.VirtualKey.Enter)
{
FocusManager.TryMoveFocus(FocusNavigationDirection.Next);
}
}

utilizzare il metodo sopra nell'evento KeyDown di tutti i TextBox.


0 per risposta № 2

Questa è una possibile implementazione.

<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"
>
<TextBox TabIndex="0" KeyDown="OnKeyDown"/>
<TextBox TabIndex="1" KeyDown="OnKeyDown"/>
<TextBox TabIndex="2" KeyDown="OnKeyDown"/>
<TextBox TabIndex="3" KeyDown="OnKeyDown"/>
<TextBox TabIndex="4" KeyDown="OnKeyDown"/>
</StackPanel>

Il prossimo codice presuppone che ContentPanel contenga solo TextBox. Sta a te aggiungere altro codice intelligente ...

private void OnKeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key.Equals(Key.Enter))
{
var txtBox = sender as TextBox;
var index = txtBox.TabIndex;

var nextTextBox = ContentPanel.Children.Cast<TextBox>().FirstOrDefault(t => t.TabIndex == index + 1);

if (nextTextBox != null)
{
nextTextBox.Focus();
}
}
}