繁体   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