0

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

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

我试图通过选择列表中更靠下的x项目来伪造它,其中 x 是可见项目的数量。这在下降时有效,但在上升时会中断。而且我一直无法确定哪个索引当前是我列表中最显眼的位置。

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

提前致谢!

4

1 回答 1

2

使用 ScrollIntoView 两次,首先显示列表中的最后一项,然后显示您选择的项目。这样,它将始终自下而上地工作。您需要在每次调用后调用 UpdateLayout 以确保位置正确。

于 2008-12-24T22:56:09.387 回答