ScrollViewer 本身的垂直偏移量与 ScrollChanged Event Args 的垂直偏移量有什么区别

What is the difference between the verticall offset of a ScrollViewer itself and that of ScrollChangedEventArgs

我为 ScrollViewer 设置了一个 ScrollChangedEventHandler,如下面的代码所示。

private void scrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    var scrollViewer = sender as ScrollViewer;
    if (scrollViewer == null) 
        return; 

    Console.WriteLine(scrollViewer.VerticalOffset); 
    Console.WriteLine(e.VerticalOffset);
}

有时,2 个 VerticalOffsets 会产生不同的值。 您能告诉我 ScrollViewer 本身的垂直偏移量与 ScrollChangedEventArgs 的垂直偏移量之间的实际区别是什么吗?

作为这两个属性的 MSDN 文档的结论:

ScrollViewer.VerticalOffset:表示ScrollViewer垂直偏移的原始值
(在你做滚动之前,表示垂直偏移事件触发之前)

e.VerticalOffset:表示ScrollViewer的Vertical offset的新更新值
(滚动后,表示垂直偏移 事件被触发后)

对于一般用途,您将使用 e.VerticalOffset 属性。

注意:同样适用于 HorizontalOffset 属性。

这里是 Resource 1 and Resource2