如何检测滚动查看器何时完成滚动?



顺便说一句,我正在使用UWP,以防万一。 所以我使用的是列表视图,默认情况下,所有列表视图都有一个附加的滚动查看器(在默认模板中(。问题是我找不到在列表视图完成滚动时触发的事件(在列表视图本身或其滚动查看器上(。

我使用 scrollViewer.ChangeView(( 方法自动滚动到 ListView 的开头,它使用动画滚动到顶部,所以我认为这与它有关,因为 ViewChanged 事件在动画完成之前触发。如果我是正确的,那么必须有一种方法来确定动画是否完成,因为我需要在 ListView 再次完全空闲时收到警报,这仅在滚动动画完成时。谢谢。

您可以连接 scrollViewer 的 ViewChanged 事件,并检查事件参数的IsIntermediate

private void ScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
if (e.IsIntermediate)
{
System.Diagnostics.Debug.WriteLine("scroll ongoing");
}
else
{
System.Diagnostics.Debug.WriteLine("scroll finish");
}
}

此事件被多次触发。滚动完成后,IsIntermediate为假。

最新更新