是否有WPF ListBox等效于Windows窗体列表框TopIndex?

时间:2008-12-24 19:42:53

标签: wpf listbox wpf-controls scroll

基本上我想要做的是允许用户键入字符串值并让列表框滚动到与他们键入的文本匹配的项目(或第一个LIKE匹配)。

如果我使用.ScrollIntoView()方法,问题是如果项目在列表中比当前滚动位置更低,它会将项目放在可见区域的底部,如果项目位于当前滚动位置的下方,它将位于顶部它在列表中比当前滚动位置更高。我希望通过将其作为列表中的顶级项目来使其保持一致(除非它当然不能成为项目的最后“页面”之一)。

我试图通过在列表中选择 x 的项目来伪造它,其中x是可见项目的数量。这在下降时有效但在返回时会中断。而且我一直无法确定哪个索引目前是我列表中最顶部可见点的索引。

WinForms列表框具有.TopIndex属性,它正是我正在寻找的,但我一直无法找到WPF等价物。那里的任何人都知道如何做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用ScrollIntoView两次,首先显示列表中的最后一项,然后显示所选项目。这种方式总是从下到上。每次调用后都需要调用UpdateLayout以确保位置正确。