2012-07-21 50 views
1

我有一個帶有ScrollViewer控件的頁面。我試圖實現一種無限滾動方法,當用戶向下滾動到內容的末尾時,該方法從web服務中延遲加載內容。在WP7中使用Silverlight中的ScrollViewer控件檢測滾動結束

這似乎是一件小事,但要處理的最顯眼的事件(ManipulationCompleted)並不適用於我的要求。當用戶停止觸摸屏幕時,事件似乎發生。但通常scrollviewer之後會繼續滾動,因爲它使用動態滾動。因此,我無法準確檢測滾動查看器何時到達內容的末尾。

該問題的解決方案在an MSDN blog上進行了描述。但是,這並不適合我的情況。本文介紹了帶有嵌入式ScrollViewer的ListBox的用法。但我沒有使用ListBox,我使用ScrollViewer和其他一些控件。

當我試圖從博客使用的代碼,該代碼失敗:

ScrollViewer sv = this.myScrollViewer; 
FrameworkElement element = VisualTreeHelper.GetChild(sv, 0) as FrameworkElement; 

與此異常:

System.ArgumentOutOfRangeException了未處理消息=指定 參數超出的有效值的範圍。參數名: childIndex

我相信我的每一步都博客的建議,並且還添加了建議風格元素,我的App.xaml

回答

0
if (ScrollViewer != null) 
{ 
    if ((ScrollViewer.ScrollableHeight != 0 && ScrollViewer.VerticalOffset != 0 && 
    ScrollViewer.ScrollableHeight - ScrollViewer.VerticalOffset) <= 10) || ScrollViewer.ScrollableHeight == 0) 
    { 
    //do work here 
    }  
} 

我希望這有助於