TabNavigation选择ListBox的第一个项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TabNavigation选择ListBox的第一个项目相关的知识,希望对你有一定的参考价值。
我们正在为那些不想要或不能使用鼠标的人使用tabnavigation。
当我通过选项卡导航到列表框时,第一个项目将被聚焦但未被选中。再次选中时,也会选择第二个项目。对我来说这是一种奇怪的行为。
如何选择标签焦点上的第一个项目呢?
谢谢!
<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>
答案
通常,用户不希望制表符键修改当前选择:它们选中以聚焦不同的控件,然后使用箭头键和/或空格选择项目。这似乎是WPF的ListBox实现中的一个错误,KeyboardNavigation.TabNavigation="Continue"
不仅修改了当前的键盘焦点,还选择了一个项目。
如果您仍然希望选择焦点项,则只需将事件处理程序(或相应的行为)添加到列表框中:
private void OnListBoxGotFocus(object sender, RoutedEventArgs e)
{
if (e.OriginalSource is ListBoxItem listBoxItem)
{
listBoxItem.IsSelected = true;
}
}
以上是关于TabNavigation选择ListBox的第一个项目的主要内容,如果未能解决你的问题,请参考以下文章
WPF 成员“TabNavigation”无法识别或无法访问。