【问题标题】:Need to modfy the default tab order of child elements需要修改子元素的默认tab顺序
【发布时间】:2020-05-11 10:00:48
【问题描述】:

我有如下自定义控件。当按下 tab 键时焦点将在 order 元素排列中移动。

查询:

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

默认标签顺序:

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

预期顺序

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

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

注意:我需要像下面这样的 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>

【问题讨论】:

  • “根据父级更改订单”是什么意思?
  • StackPanel 应该支持编辑Children 集合,您应该能够通过删除所有子元素然后按所需顺序重新插入子元素来修改子 UI 元素的顺序,就像重新排序元素时你会在列表中做
  • 使用自定义面板,您可以这样做,覆盖 ArrangeOverride 并修改顺序.. 在 stackpanel 中,获取子项,从可视树中删除它们并将其添加到所需的索引中
  • 我的意思是我不知道子元素的现有选项卡索引,因为选项卡索引是根据排列分配的,但是当 stackpanel 接收焦点时,我需要像 3,2,1 一样更新选项卡顺序, 用于堆栈面板内的按钮
  • @zafar 我希望 UI 仅处于现有顺序,但我需要仅根据我的要求更新 Tab 焦点顺序。

标签: c# wpf tabs custom-controls


【解决方案1】:

如 cmets 中所述,请设置 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>

如果您想在运行时修改选项卡顺序,我建议您为其创建一个行为。请参阅Use of Behavior in WPF MVVM? 要从代码访问附加属性,请参阅Get and set WPF custom attached property from code behind

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多