有没有办法检测ListView的ScrollViwer处于滚动模式并停止滚动.在
Windows Phone 8.1 ListView中我们无法获得scrollviewer的参考.
任何人在Windows Phone 8.1 WinRT应用程序中完成它?
加载ListView后,您可以像这样获取ScrollViewer:
原文链接:https://www.f2er.com/windows/363284.htmlvar sv = (ScrollViewer)VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(this.ListV,0),0);
编辑
正如Romasz建议的那样,一旦你获得了ScrollViewer,就可以使用它的ViewChanged事件来监视它何时滚动以及何时停止.
此外,这是我用于遍历可视树的通用扩展方法:
// The method traverses the visual tree lazily,layer by layer // and returns the objects of the desired type public static IEnumerable<T> GetChildrenOfType<T>(this DependencyObject start) where T : class { var queue = new Queue<DependencyObject>(); queue.Enqueue(start); while (queue.Count > 0) { var item = queue.Dequeue(); var realItem = item as T; if (realItem != null) { yield return realItem; } int count = VisualTreeHelper.GetChildrenCount(item); for (int i = 0; i < count; i++) { queue.Enqueue(VisualTreeHelper.GetChild(item,i)); } } }
var sv = yourListView.GetChildrenOfType<ScrollViewer>().First();