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
我为 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