用于选择列表框的第一项的选项卡导航



我们为不想或不能使用鼠标的人使用选项卡导航。

当我通过选项卡导航到列表框时,第一项将被聚焦但未被选中。当我再次按 tab 键时,第二项也将被选中。对我来说,这是一种奇怪的行为。

如何选择选项卡焦点上的第一项?

谢谢!

<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox Text="Focus"/>
<ListBox Grid.Row="1" KeyboardNavigation.TabNavigation="Continue">
<ListBoxItem Content="Test1"/>
<ListBoxItem Content="Test2"/>
<ListBoxItem Content="Test3"/>
</ListBox>
</Grid>

第一步

第二步

第三步

通常,用户不希望制表器键修改当前选择:它们按 Tab 键聚焦不同的控件,然后使用箭头键和/或空格键选择项目。这似乎是 WPF 的 ListBox 实现中的一个错误,它不仅KeyboardNavigation.TabNavigation="Continue"修改当前的键盘焦点,而且还选择一个项目。

如果仍希望选择焦点项,只需将事件处理程序(或相应的行为)添加到列表框中:

private void OnListBoxGotFocus(object sender, RoutedEventArgs e)
{
if (e.OriginalSource is ListBoxItem listBoxItem)
{
listBoxItem.IsSelected = true;
}
}

相关内容

  • 没有找到相关文章

最新更新