簡體   English   中英

C#/ WPF - 獲取ScrollViewer滾動位置?

[英]C#/WPF - Get ScrollViewer scroll position?

好的,所以,每個人都知道如何設置ScrollViewer的滾動位置。 關於ScrollViewer.ScrollToVerticalOffset()論文和博客文章已經寫好了,這里有幾百個關於它的答案。

所以,我輸入:

myScrollViewer.ScrollToVerticalOffset(280);

......它如此親切地滾動到那個位置。

問題是, 什么屬性現在包含280 ,所以我可以在以后檢索它?

(提示: myScrollViewer.VerticalOffsetContentVerticalOffset都是0; myScrollViewer.ScrollInfo只是普通的。)

編輯:顯然我需要更詳細的演示。

private void btnTest_Click(object sender, RoutedEventArgs e) {
  double scrollTarget = 280;
  MessageBox.Show("Target: " + scrollTarget.ToString());
  myScrollViewer.ScrollToVerticalOffset(scrollTarget);
  MessageBox.Show("Now: " + myScrollViewer.VerticalOffset);
}

我必須重申,這確實按預期滾動 向我正確的方向前進。 但是, myScrollViewer.VerticalOffset設置為0。

解決方案是在myScrollViewer.UpdateLayout()之后手動調用myScrollViewer.ScrollToVerticalOffset() 然后, myScrollViewer.VerticalOffset將具有預期值。

在觸發LayoutUpdated事件后,確保您的VerticalScrollBarVisibility =“Visible”和VerticalScrollOffset將為280。

我認為你在窗口的構造函數中調用myscrollViewer。

單擊按鈕或窗口的加載方法時,可以調用它們,以便以垂直偏移值更新值。 也就是說,初始化窗口后,這些值會更新!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM