2

我为 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 的垂直偏移量之间的实际区别是什么吗?

4

1 回答 1

4

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

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

e.VerticalOffset:表示ScrollViewer的Vertical offset的新更新值
(你做了scroll之后,就是事件触发后的vertical offset的值)

出于一般目的,您将使用该e.VerticalOffset属性。

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

这是资源 1资源2

于 2015-10-11T07:10:08.163 回答