AutoCompleteComboBox向上/向下箭头键滚动列表

本文关键字:滚动 列表 向上 AutoCompleteComboBox | 更新日期: 2023-09-27 18:17:10

我在我的WPF应用程序中创建了一个简单的AutoCompleteBox,它装载了拦截填充事件的代码,但是当列表弹出时,我按下箭头键并到达列表的末尾时,垂直滚动条不滚动。

字段中的值不断变化,就像在滚动它们一样,但滚动条没有移动。

如果我使用鼠标,它可以滚动。

我只需要用箭头键来滚动它。

意见/建议吗?

我是WPF的新手,一直在寻找这个修复。

AutoCompleteComboBox向上/向下箭头键滚动列表

附加一个SelectionChanged事件,然后在处理程序内部:

private void AutoCompleteBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    AutoCompleteBox box = (AutoCompleteBox)sender;
    ListBox innerListBox = (ListBox) box.Template.FindName("Selector", box);
    innerListBox.ScrollIntoView(innerListBox.SelectedItem);
}

我看到了同样的行为。我在codeplex上发现了一篇关于不同问题的文章,但在文章的底部,他们有一个支持ScrollIntoView的AutoCompleteBoxEx类,所以你可以连上SelectionChanged,这应该能让你得到你想要的行为。我不知道为什么这不是烤熟的。我有机会测试张贴的代码。

只是将代码粘贴到一个类中,并通过将AutoCompleteBox更改为AutoCompleteBoxEx并为AutoCompleteBoxEx添加命名空间在XAML中使用它,它工作得很好。您不必在XAML中指定任何事件,也不需要向后面的代码添加任何代码。