AutoCompleteComboBox向上/向下箭头键滚动列表
本文关键字:滚动 列表 向上 AutoCompleteComboBox | 更新日期: 2023-09-27 18:17:10
我在我的WPF
应用程序中创建了一个简单的AutoCompleteBox
,它装载了拦截填充事件的代码,但是当列表弹出时,我按下箭头键并到达列表的末尾时,垂直滚动条不滚动。
字段中的值不断变化,就像在滚动它们一样,但滚动条没有移动。
如果我使用鼠标,它可以滚动。
我只需要用箭头键来滚动它。
意见/建议吗?
我是WPF
的新手,一直在寻找这个修复。
附加一个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中指定任何事件,也不需要向后面的代码添加任何代码。