C#/ WPF - 获取ScrollViewer滚动位置?

Dig*_*Man 21 c# wpf

好的,所以,每个人都知道如何设置ScrollViewer的滚动位置.已经写了整篇论文和博客文章ScrollViewer.ScrollToVerticalOffset(),这里有几百个问题的答案.

所以,我输入:

myScrollViewer.ScrollToVerticalOffset(280);
Run Code Online (Sandbox Code Playgroud)

......它如此亲切地滚动到那个位置.

问题是,什么属性现在包含280,所以我可以在以后检索它?

(提示:myScrollViewer.VerticalOffset并且ContentVerticalOffset都是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);
}
Run Code Online (Sandbox Code Playgroud)

我必须重申,这确实按预期滚动.向我正确的方向前进.但是,myScrollViewer.VerticalOffset设置为0.

Dig*_*Man 25

解决的办法是手动调用myScrollViewer.UpdateLayout()之后myScrollViewer.ScrollToVerticalOffset().然后,myScrollViewer.VerticalOffset将具有预期值.