ScrollViewer的ScrollToVerticalOffset值未在ScrollViewer.VerticalOffset属性中更新

时间:2016-04-29 07:46:48

标签: windows-store-apps win-universal-app scrollviewer

我已经提到了以下论坛

https://social.msdn.microsoft.com/Forums/en-US/1885dcfa-af48-47ee-85d7-bb9809e24f38/scrollviewerscrolltoverticaloffset-not-working-in-windows-8?forum=winappswithcsharp

通过调用ScrollViewer.UpdateLayout()方法,我们可以将scrollviewer的位置设置为垂直。我可以看到在使用/不调用ScrollViewer.UpdateLayout()时在UI中更改垂直偏移值。但是,当我尝试从ScrollViewer.VerticalOffset获取值时,该值不会被更改。

ScrollViewer.ScrollToVerticalOffset(1905);

// ScrollViewer.UpdateLayout();

更新此ScrollViewer.VerticalOffset的其他任何方式?

1 个答案:

答案 0 :(得分:0)

ScrollViewer设置垂直/水平偏移的推荐方法是使用ChangeView()方法。以下是如何使用它

scrollViewer.ChangeView(scrollViewer.HorizontalOffset, 500, scrollViewer.ZoomFactor);

您可以在VerticalOffset事件中获取已更改的HorizontalOffsetViewChanged属性。 E.g。

private void scrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
    double verticalOffset = scrollViewer.VerticalOffset;
}