AutoCompleteBox
我在我的应用程序中创建了一个简单的WPF
应用程序,它加载了拦截 Populate 事件的代码,但是当列表弹出并且我按下箭头键并到达列表末尾时,垂直滚动条不会滚动。
字段中的值不断变化,就像滚动它们一样,但滚动条没有移动。
如果我使用鼠标,它滚动得很好。
我只需要箭头键来滚动它。
有什么想法/建议吗?
我是新手,WPF
并且一直在寻找此修复程序。
AutoCompleteBox
我在我的应用程序中创建了一个简单的WPF
应用程序,它加载了拦截 Populate 事件的代码,但是当列表弹出并且我按下箭头键并到达列表末尾时,垂直滚动条不会滚动。
字段中的值不断变化,就像滚动它们一样,但滚动条没有移动。
如果我使用鼠标,它滚动得很好。
我只需要箭头键来滚动它。
有什么想法/建议吗?
我是新手,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 中指定任何事件,也无需在后面的代码中添加任何代码。