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

Need to modfy the default tab order of child elements

我有如下自定义控件。按tab键时焦点会按顺序元素排列移动。

查询:

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

默认 Tab 顺序:

DockPanel--Border---StackPanel-->Button1-->button2-->button3

预期订单

DockPanel--Border---StackPanel-->Button3-->button2-->button1

我需要根据其父级更新 TabOrder。请建议解决方案修改基于parent

的Tab顺序

注意:我需要UI如下安排,只是我需要修改按钮的Tab键顺序

<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 键顺序,我建议您为它创建一个行为。参见 Use of Behavior in WPF MVVM? To access attached property from code see