自动填充框tabindex

时间:2011-10-24 07:47:38

标签: wpf

我刚刚提出

two textbox(tabindex=0,2),
one autocompletebox(tabindex=1)
 and one button(tabindex=3)

但最后在运行时自动完成框获取标签。

使用

设置标签
KeyboardNavigation.TabIndex="0"

尝试使用KeyboardNavigation的每种模式

我还按照tabindex顺序在xaml中推出了控件。

现在为什么autocompletebox最后?什么是它的解决方案

3 个答案:

答案 0 :(得分:2)

这是用于此控件的示例。在样式上设置TabIndex或任何TextBox的属性:

<controls:AutoCompleteBox ItemsSource="{Binding Cities}" 
                          FilterMode="Contains" 
                          IsTextCompletionEnabled="True" 
                          MinimumPrefixLength="2" 
                          Text="{Binding Path=City,
                                         Mode=TwoWay,
                                         UpdateSourceTrigger=PropertyChanged}">
        <controls:AutoCompleteBox.TextBoxStyle>
          <Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="{x:Type TextBox}">
            <Setter Property="MaxLength" Value="100" />
            <Setter Property="TabIndex" Value="1" />
          </Style>
        </controls:AutoCompleteBox.TextBoxStyle>
        <controls:AutoCompleteBox.BorderBrush>
          <LinearGradientBrush MappingMode="Absolute" StartPoint="0,0" EndPoint="0,20">
            <GradientStop Offset="0.05" Color="#ABADB3" />
            <GradientStop Offset="0.07" Color="#E2E3EA" />
            <GradientStop Offset="1" Color="#E3E9EF" />
          </LinearGradientBrush>
        </controls:AutoCompleteBox.BorderBrush>
      </controls:AutoCompleteBox>

答案 1 :(得分:0)

您需要做的就是添加

IsTabStop="True"
自动完成框上的

答案 2 :(得分:0)

对我有用的解决方案:

  

关于AutoCompleteBox的一个警告是它无法识别TabIndex属性。它目前只是Silverlight控件的直接端口,显然Silverlight没有TabIndex概念。事实证明,WPF中并不真正需要TabIndex属性,您将始终按照在XAML中定义的顺序对控件进行选项卡。因此,为了确保标签顺序得到遵守,请不要在任何控件上设置TabIndex属性,只需确保按所需的标签顺序将它们放在XAML中。

Source