如何在Windows Phone 8.1中设置选项卡索引

时间:2016-01-21 11:10:33

标签: windows-phone-8.1

我的应用页面中有3个文本框,我想为它们设置标签索引,这样当用户从键盘按下返回键时,它应该转到下一个文本框。 我已经设置了TextBox的Tab Index属性,但它不起作用。

2 个答案:

答案 0 :(得分:1)

适用于带有以下代码的Windows Phone 8.1应用程序。

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

在所有TextBoxes的KeyDown事件中使用上述方法。

答案 1 :(得分:0)

这是一种可能的实施方式。

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

下一个代码假设ContentPanel仅包含TextBox。您可以在其中添加更多智能代码......

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();
        }
    }
}