网格默认 Tab 键顺序
Grid default tab order
对于 Grid
控件,默认的 Tab 键顺序似乎是按行,然后按列。也就是说,我可以通过 Tab 键浏览第一列中的所有控件,然后是第二列中的所有控件。
但是,我希望能够通过 Tab 键浏览第一行中的所有控件,然后是第二行中的所有控件。
我通过为每个控件设置 TabIndex
解决了这个问题。但如果我不必手动编写代码就好了。有没有办法更改默认的 Tab 键顺序?
默认的 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 以反映您想要的 Tab 键顺序。
对于 Grid
控件,默认的 Tab 键顺序似乎是按行,然后按列。也就是说,我可以通过 Tab 键浏览第一列中的所有控件,然后是第二列中的所有控件。
但是,我希望能够通过 Tab 键浏览第一行中的所有控件,然后是第二行中的所有控件。
我通过为每个控件设置 TabIndex
解决了这个问题。但如果我不必手动编写代码就好了。有没有办法更改默认的 Tab 键顺序?
默认的 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 以反映您想要的 Tab 键顺序。