顺便说一句,我正在使用 UWP 以防万一。 所以我使用的是 ListView,默认情况下,所有 ListView 都附加了一个 ScrollViewer(在默认模板中)。问题是我找不到在 ListView 完成滚动时触发的事件(在 ListView 本身或其 ScrollViewer 上)。
我使用 scrollViewer.ChangeView() 方法自动滚动到 ListView 的开头,它使用动画滚动到顶部,所以我认为这与它有关,因为 ViewChanged 事件在动画之前触发完成。如果我对此是正确的,那么必须有一种方法来确定动画是否完成,因为我需要在 ListView 再次完全空闲时收到警报,这仅在滚动动画完成时发生。谢谢。
最佳答案
您可以连接 scrollViewer 的 ViewChanged event , 并检查事件参数的 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
为 false。
关于c# - 如何检测 ScrollViewer 何时完成滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50828897/