假设我有一个包含1000个项目的AutoCompleteBox。
如何强制AutoCompleteBox显示从列表中的第一项开始的结果?
答案 0 :(得分:1)
这是基于默认控件模板的盲猜。在DropdownOpening
事件中: -
var sv = ((FrameworkElement)sender).FindName("ScrollViewer") As ScrollViewer;
if (sv != null)
sv.VerticalOffset = 0;
答案 1 :(得分:1)
我知道这不是一个答案,但我想我会分享我发现的东西,即使它没有解决问题。我在DropDownOpening
事件中尝试了以下所有内容。
SelectedItem
设置为null。 - 失败。sender
为AutoCompleteBox
,不包含ScrollViewer
。其次,VerticalOffset
是只读的。AutoCompleteBox
中的所有变量,发现它有一个名为DropDownPopup
的非公共变量,它是System.Windows.Control.PopupHelper
的一个实例。虽然我在那个图书馆里找不到它。但是,它包含一个带有变量Popup
的{{1}}属性。但是,我试图继承VerticalOffset
并且无法访问该变量,所以我怀疑它必须是私有的。