I have referred the below forum
By invoking ScrollViewer.UpdateLayout() method, we can set the position of scrollviewer in vertical. I can see vertical offset value is changed in UI with/without invoking ScrollViewer.UpdateLayout(). But when i try to get the value from ScrollViewer.VerticalOffset which doesn't gets changed.
ScrollViewer.ScrollToVerticalOffset(1905);
// ScrollViewer.UpdateLayout();
Any other way to update this ScrollViewer.VerticalOffset?
Recommended way to set vertical / horizontal offset for a ScrollViewer
is to use ChangeView() method. Here's how to use it
scrollViewer.ChangeView(scrollViewer.HorizontalOffset, 500, scrollViewer.ZoomFactor);
You can get the changed VerticalOffset
or HorizontalOffset
properties in ViewChanged
event. E.g.
private void scrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
double verticalOffset = scrollViewer.VerticalOffset;
}