好的,所以,每个人都知道如何设置ScrollViewer的滚动位置。整篇论文和博客文章都是关于ScrollViewer.ScrollToVerticalOffset()
而写的,这里有几百个问题及答案。
所以,我输入:
myScrollViewer.ScrollToVerticalOffset(280);
......它如此友好地滚动到那个位置。
问题是,什么属性现在包含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);
}
我必须重申,会按预期滚动。向我正确的方向前进。但是,myScrollViewer.VerticalOffset
设置为0。
答案 0 :(得分:24)
解决方案是在myScrollViewer.UpdateLayout()
之后手动调用myScrollViewer.ScrollToVerticalOffset()
。然后,myScrollViewer.VerticalOffset
将具有预期值。
答案 1 :(得分:4)
确保在触发LayoutUpdated事件后,您的VerticalScrollBarVisibility =“Visible”和VerticalScrollOffset将为280.
答案 2 :(得分:0)
我认为你是在窗口的构造函数中调用myscrollViewer。
单击按钮或窗口的加载方法时,可以调用它们,以便以垂直偏移值更新值。也就是说,在初始化窗口后,这些值会更新!