根据你的截图,我想你真正想要的是获得第一个可见组头信息。 AFAIK,目前没有属性可以直接获取当前第一个可见标题。如果您确实需要此功能,您可能需要使用VisualTreeHelper
获取组头中的元素,并尝试计算它是否可见,但这可能不被推荐。 Here是一个类似的线程,你可以参考。以下方法可以帮助您判断它是否可见。
private bool IsVisibileToUser(FrameworkElement element, FrameworkElement container)
{
if (element == null || container == null)
return false;
if (element.Visibility != Visibility.Visible)
return false;
Rect elementBounds = element.TransformToVisual(container).TransformBounds(new Rect(0.0, 0.0, element.ActualWidth, element.ActualHeight));
Rect containerBounds = new Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight);
return (elementBounds.Top <= element.ActualHeight && elementBounds.Bottom > containerBounds.Top);
}
对于完整的样品请参考this。
所以,我必须遍历所有项目,以检查它是否可见与此方法? – user3239349
如果是这样,我有一个问题。因为每次用户滚动列表视图时都会触发。有大量的项目,有时3000-4000。 – user3239349
@ user3239349,是的,每次用户滚动时都会触发。它的效率取决于滚动的频率,而不是项目的数量。这可能不是一个有效的解决方案,我们也不建议这样做。但在您的情况下,这可能是唯一的方法,因为每次用户滚动第一个可见项目时都会更改。 –