2015-10-11 52 views
2

我爲ScrollViewer設置了一個ScrollChangedEventHandler,如下面的代碼所示。ScrollViewer本身和ScrollChangedEventArgs的verticall偏移量之間的區別是什麼

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個VerticalOffset會產生不同的值。 你能告訴我ScrollViewer本身和ScrollChangedEventArgs的垂直偏移量之間的實際差異是什麼?

回答

3

如從MSDN文檔的結論爲那些兩個屬性:

ScrollViewer.VerticalOffset:表示的ScrollViewer垂直的原始值偏移(你做滾動之前,意味着垂直的前偏移事件被觸發)

e.VerticalOffset:代表ScrollViewer中的垂直的新(更新值的偏移量(你做滾動後,意味着垂直的價值抵銷後事件被觸發)

所以你可以比較兩個值:
ScrollViewer.VerticalOffset舊的,滾動完成前的原始值。
e.VerticalOffset新滾動完成後更新的值。

在通常情況下,您將使用e.VerticalOffset屬性。請注意:HorizontalOffset屬性也適用。

這裏是Resource 1Resource2

+1

非常感謝您的盛情答案。 – user4134476

相關問題