我有一个带有ScrollViewer控件的页面。我正在尝试实现一种无限滚动的方法,当用户向下滚动到内容的末尾时,该方法会延迟从Web服务加载内容。
这看起来像是一项微不足道的任务,但是处理最常见的事件(ManipulationCompleted)并不能满足我的要求。当用户停止触摸屏幕时,事件似乎触发。但通常滚动查看器会在此之后继续滚动,因为它使用动态滚动。因此,我无法准确检测滚动查看器何时到达内容的末尾。
an MSDN blog描述了此问题的解决方案。然而,这对我的情况不起作用。本文描述了带有嵌入式ScrollViewer的ListBox的用法。但我没有使用ListBox,我使用ScrollViewer和其他一些控件。
当我尝试使用博客中的代码时,此代码失败:
ScrollViewer sv = this.myScrollViewer;
FrameworkElement element = VisualTreeHelper.GetChild(sv, 0) as FrameworkElement;
有这个例外:
System.ArgumentOutOfRangeException未处理Message = Specified 参数超出了有效值的范围。参数名称: childIndex
我相信我做了博客建议的每一步,并且还将建议的Style元素添加到我的App.xaml
答案 0 :(得分:0)
if (ScrollViewer != null)
{
if ((ScrollViewer.ScrollableHeight != 0 && ScrollViewer.VerticalOffset != 0 &&
ScrollViewer.ScrollableHeight - ScrollViewer.VerticalOffset) <= 10) || ScrollViewer.ScrollableHeight == 0)
{
//do work here
}
}
我希望这会有所帮助