gpt4 book ai didi

xaml - 如何检测 ListView 向上或向下滚动

转载 作者:行者123 更新时间:2023-12-04 14:12:21 25 4
gpt4 key购买 nike

有没有办法检测ScrollViwerListView处于滚动模式并停止滚动。在 Windows Phone 8.1 ListView我们无法获得滚动查看器的引用。

有人在 Windows Phone 8.1 WinRT 应用程序中做过吗?

最佳答案

一旦 ListView 是 Loaded您可以获得 ScrollViewer像这样:

var 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));
}
}
}

获取 ScrollViewer使用这种方法,这样做:

var sv = yourListView.GetChildrenOfType<ScrollViewer>().First();

关于xaml - 如何检测 ListView 向上或向下滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27294439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com