【问题标题】:How to change the tab index in avalonia ui如何更改 avalonia ui 中的选项卡索引
【发布时间】:2021-03-06 19:50:17
【问题描述】:

在 Avalonia Ui, 我的用户界面中有多个布局,我想要一个非常具体的标签顺序, 像

<TextBox Tabindex="2">
<StackPanel>
 <TextBox Tabindex="1">
</StackPanel>
<TextBox Tabindex="0">

这将导致使用 tab 键从下到上循环。 这可能吗?我什么也没找到。

【问题讨论】:

    标签: avaloniaui


    【解决方案1】:

    我不这么认为。 KeyboardNavigation.TabIndex 尚未实现:https://github.com/AvaloniaUI/Avalonia/issues/3025。 您可以使用KeyboardNavigation 中提供的功能和使用另一个控件(例如DockPanelRelative Panel)进行一些有限的控制。

    这是一个非常基本的示例,说明如何使用DockPanel 来做你想做的事:

    <DockPanel LastChildFill="False"
               VerticalAlignment="Top"
               Name="TabOrderConatiner">
        <TextBox Name="First" Tag="2" DockPanel.Dock="Top"></TextBox>
        <TextBox Name="Third" Tag="0" DockPanel.Dock="Bottom"></TextBox>
        <TextBox Name="Second" Tag="1" DockPanel.Dock="Top"></TextBox>
    </DockPanel>
    

    然而,与TabIndex 所能提供的相比,我上面所说的有限。

    除此之外,您还应该能够在容器变为活动状态时设置第一个 TabItem,就像您的代码隐藏一样:

    var tabOrderContainer = this.FindControl<DockPanel>("TabOrderConatiner");
    var initialElement = this.FindControl<TextBox>("Third");
    
    KeyboardNavigation.SetTabOnceActiveElement(tabOrderContainer, initialElement);
    

    但我没有设法让它工作......

    【讨论】:

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