在wpf中禁用ComboBoxItem容器焦点

时间:2015-02-12 09:32:24

标签: wpf xaml

我需要在组合框项容器中禁用焦点。 在数据模板中有文本框控件。选择组合框项目容器打开并按Tab键后,光标应该流向文本框控件,第二个tab键按下一个文本框。

实际上,现在,首先它将转到容器和第二个Tab键,它将转到每个组合框项目的文本框,因此它需要两个选项卡按键才能到达组合框项目中的文本框控件。

我需要禁用对组合框项目容器的关注,因此它会减少一个标签键按下。

提前致谢。

2 个答案:

答案 0 :(得分:1)

使用下面的XAML代码可以满足您的要求:

<ComboBox KeyboardNavigation.DirectionalNavigation="Cycle">
    <ComboBoxItem FocusManager.FocusedElement="{Binding ElementName=item1}">
        <ToggleButton x:Name="item1" Content="Item 1" Click="ComboBoxItem1_Clicked"/>
    </ComboBoxItem>
    <ComboBoxItem FocusManager.FocusedElement="{Binding ElementName=item2}">
        <ToggleButton x:Name="item2"  Content="Item 2" Click="ComboBoxItem1_Clicked"/>
    </ComboBoxItem>
</ComboBox>

答案 1 :(得分:0)

您可以通过处理GotFocus中的ComboBox事件手动执行此操作,并将所选项目设置为下拉列表中的第一个

 <ComboBox x:Name="Box" GotFocus="Box_OnGotFocus" >
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="Yo"></TextBlock>
            </DataTemplate>
        </ComboBox.ItemTemplate>            
    </ComboBox>

和处理程序

private void Box_OnGotFocus(object sender, RoutedEventArgs e)
    {
        Box.IsDropDownOpen = true;
        Box.SelectedIndex = 0;
    }