使用Tab键选择WPF ComboBoxItem

6
WPF ComboBox在按Tab键时无法选定项目。您必须按"Enter"或使用鼠标单击项目才能选择它!以下是预期的工作方式:
1. 展开ComboBox 2. 使用上/下箭头键查找要选择的项目。 3. 按当前项目上的“tab”键选择它,然后移至下一个字段。
实际上,当您按Tab键时,它将循环遍历ComboBox中的所有ComboBoxItems。
2个回答

2

如果有人来这里寻找一个例子(就像我一样),这是一个对我有效的KeyEvent事件处理程序的内容:

if (e.Key == Key.Tab || e.Key == Key.Enter)
{
    var comboBox = sender as ComboBox;
    var newValue = (e.OriginalSource as ComboBoxItem)?.DataContext;
    if (newValue != null)
    {
        comboBox.SelectedItem = newValue;
    }
    comboBox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}

0

在编程中,按下Tab键会触发KeyUp事件。而当ComboBox的下拉列表打开时,跟踪当前高亮的项目的唯一方法是修改控件模板中的文本框,以便您可以访问所选值并在按下Tab键后将其指定为已选。

虽然这不是最令人愉快的事情,但这是实现所需行为的唯一方法,除非您自己制作完全不同的控件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接