我有一个带有 ScrollViewer 控件的页面。我正在尝试实现一种无限滚动方法,当用户向下滚动到内容的末尾时,该方法会延迟从 web 服务加载内容。
这似乎是一项微不足道的任务,但要处理的最明显的事件 (ManipulationCompleted) 无法正常工作以满足我的要求。当用户停止触摸屏幕时,该事件似乎会触发。但通常滚动查看器会在此之后继续滚动,因为它使用动态滚动。结果,我无法准确检测滚动查看器何时到达内容的末尾。
MSDN 博客上描述了此问题的解决方案。但是,这不适用于我的情况。本文介绍了使用嵌入的 ScrollViewer 的 ListBox。但我没有使用 ListBox,我使用的是 ScrollViewer,里面有一些其他控件。
当我尝试使用博客中的代码时,此代码失败:
ScrollViewer sv = this.myScrollViewer;
FrameworkElement element = VisualTreeHelper.GetChild(sv, 0) as FrameworkElement;
除了这个例外:
System.ArgumentOutOfRangeException 未处理 Message=指定的参数超出有效值的范围。参数名称:childIndex
我相信我完成了博客建议的每一步,并将建议的 Style 元素添加到我的 App.xaml