4

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

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

如果我使用鼠标,它滚动得很好。

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

有什么想法/建议吗?

我是新手,WPF并且一直在寻找此修复程序。

4

2 回答 2

2

附加一个 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);
}
于 2014-06-16T10:12:37.857 回答
1

我看到了同样的行为。我在 codeplex 上找到了一个帖子,讨论了一个不同的问题,但在帖子的底部,他们有一个支持 ScrollIntoView 的 AutoCompleteBoxEx 类,因此您甚至可以连接 SelectionChanged,这应该可以得到您想要的行为。我不知道为什么不这样做。我有机会测试发布的代码。

更新

只需将帖子中的代码粘贴到一个类中,并通过将 AutoCompleteBox 更改为 AutoCompleteBoxEx 并为 AutoCompleteBoxEx 添加命名空间来在 XAML 中使用它,它工作正常。您无需在 XAML 中指定任何事件,也无需在后面的代码中添加任何代码。

于 2011-12-09T19:46:21.750 回答