Порядок табуляции по умолчанию в сетке

С элементом управления Grid кажется, что порядок табуляции по умолчанию — по строке, а затем по столбцу. То есть я могу просмотреть все элементы управления в первом столбце, а затем все элементы управления во втором столбце.

Однако я хотел бы иметь возможность просматривать все элементы управления в первой строке, а затем все элементы управления во второй строке.

Я решил эту проблему, установив TabIndex для каждого элемента управления. Но было бы неплохо, если бы мне не пришлось кодировать это вручную. Есть ли способ изменить порядок вкладок по умолчанию?


person Mitkins    schedule 02.10.2017    source источник


Ответы (1)


Порядок табуляции по умолчанию не по строке, а по столбцу.

Вы можете легко проверить это с помощью приведенного ниже 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, чтобы отразить желаемый порядок табуляции.

person Szabolcs Dézsi    schedule 02.10.2017
comment
Да, вы совершенно правы. Я организовал элементы управления в отдельные столбцы в xaml. Не осознавая, что визуальное дерево повлияло на порядок табуляции. Это лучшее решение, чем я надеялся! - person Mitkins; 02.10.2017