0

使用该Grid控件,默认的 Tab 键顺序似乎是按行,然后按列。也就是说,我可以通过 Tab 浏览第一列中的所有控件,然后是第二列中的所有控件。

但是,我希望能够浏览第一行中的所有控件,然后是第二行中的所有控件。

我已经通过设置TabIndex每个控件来解决这个问题。但是,如果我不必手动编码,那就太好了。有没有办法改变默认的标签顺序?

4

1 回答 1

2

默认的 tab 顺序不是按行然后按列。

您可以使用以下 XAML 轻松检查这一点:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>

    <TextBox Grid.Row="0" Grid.Column="0" />
    <TextBox Grid.Row="0" Grid.Column="1" />
    <TextBox Grid.Row="1" Grid.Column="0" />
    <TextBox Grid.Row="1" Grid.Column="1" />
</Grid>

这将逐行遍历文本框,从左上角的文本框开始从左到右。

如果您将顺序更改为:

<TextBox Grid.Row="0" Grid.Column="0" />
<TextBox Grid.Row="1" Grid.Column="0" />
<TextBox Grid.Row="1" Grid.Column="1" />
<TextBox Grid.Row="0" Grid.Column="1" />

它将从左上角开始以逆时针方式浏览控件。

因此,默认顺序由它们在可视树中的顺序决定。您可以尝试更改您的 XAML 以反映您想要的选项卡顺序。

于 2017-10-02T02:52:47.233 回答