0

我在 ComboBox 中有一个大列表(约 10000 个项目),它使用 VirtualizingStackPanel 类。滚动性能很好,无论如何我想知道如何识别 GUI 中显示的顶部项目 - 不一定是索引为零的项目,而是当前滚动项目列表顶部的项目。? 谢谢你。

4

1 回答 1

0

我使用 FrameworkElement.IsVisible 属性。使用下面链接中的方法,您还可以检查元素是否部分可见(这对您的情况很有用):

在 WPF 中,如何确定控件是否对用户可见?

您可以(通过使用后台线程或在用户在组合框中滚动时进行计算)检查组合框中的项目以查看其 FrameworkElement.IsVisible 属性是否设置为 true。如果是这样,则更新其 ViewModel 中的元素 IsVisible 属性。现在,您的 ViewModel 中有一个标记为可见或不可见的项目集合(并且关于它所代表的 CoboBox 项目的可见性不断更新)。现在,您可以在项目集合上找到第一个使用 .First(x=>x.IsVisible==true) 的内容。

于 2013-07-09T14:55:26.310 回答