根據你的截圖,我想你真正想要的是獲得第一個可見組頭信息。 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,是的,每次用戶滾動時都會觸發。它的效率取決於滾動的頻率,而不是項目的數量。這可能不是一個有效的解決方案,我們也不建議這樣做。但在您的情況下,這可能是唯一的方法,因爲每次用戶滾動第一個可見項目時都會更改。 –