需要修改子元素的默认 Tab 键顺序



>我有如下自定义控件。当按 Tab 键时,焦点将按元素排列顺序移动。

查询:

当堆栈面板接收选项卡焦点时,我需要更改堆栈面板中存在的默认选项卡顺序切换按钮

默认 Tab 键顺序:

停靠面板--边框---堆栈面板-->按钮1-->按钮2-->按钮3

预期订单

停靠面板--边框---堆栈面板-->按钮3-->按钮2-->按钮1

我需要根据其父级更新 TabOrder。请根据父项建议解决方案修改 Tab 键顺序

注意:我需要如下所示的UI,只需要修改按钮的选项卡顺序

<DockPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<Border x:Name="MainBorder">
<StackPanel>
<ToggleButton>Button 1</ToggleButton>
<ToggleButton>Button 3</ToggleButton>
<ToggleButton>Button 3</ToggleButton>
</StackPanel>
</Border>
</DockPanel>

如注释中所述,确实设置了TabIndex属性。若要在控件范围内执行步骤,请使用附加属性KeyboardNavigation.TabNavigation

<DockPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<Border x:Name="MainBorder">
<StackPanel KeyboardNavigation.TabNavigation="Local">
<ToggleButton KeyboardNavigation.TabIndex="3">Button 1</ToggleButton>
<ToggleButton KeyboardNavigation.TabIndex="2">Button 2</ToggleButton>
<ToggleButton KeyboardNavigation.TabIndex="1">Button 3</ToggleButton>
</StackPanel>
</Border>
</DockPanel>

如果您想在运行时修改 Tab 键顺序,我建议您为其创建行为。请参阅在 WPF MVVM 中使用行为?若要从代码访问附加属性,请参阅从代码隐藏获取和设置 WPF 自定义附加属性

最新更新