2016-04-29 4 views
0

で更新されていない私はScrollViewer.UpdateLayout()メソッドを呼び出すことにより、以下のフォーラムScrollViewerののScrollToVerticalOffset値がScrollViewer.VerticalOffsetプロパティ

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

を言及している、我々は垂直にScrollViewerの位置を設定することができます。 ScrollViewer.UpdateLayout()を呼び出す/しないで、垂直オフセット値がUIで変更されているのがわかります。しかし、私は変更されていないScrollViewer.VerticalOffsetから値を取得しようとするとき。

ScrollViewer.ScrollToVerticalOffset(1905); 

// ScrollViewer.UpdateLayout();

他の方法でこのScrollViewer.VerticalOffsetを更新できますか?

答えて

0

ScrollViewerの垂直/水平オフセットを設定する推奨方法は、ChangeView()メソッドを使用することです。ここでは、それは

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

あなたはViewChangedイベントで変更VerticalOffsetまたはHorizontalOffsetプロパティを取得することができます使用する方法です。例えば。

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

@Hassanありがとうございました。 – Smirti

+0

@Hassanもう1つのクエリ。上記のコードを設定してVerticalOffsetの値を確認し、そのイベントにブレークポイントを設定してViewChangedイベントを使用してScrollViewerの実際のVerticalOffset値を決定しました。スクロールバーはUIのスクロールビューアで移動します。しかし、ブレークポイントなしでチェックすると、垂直スクロールバーの値はUIでは変更されません。 Task.Delayを使用してチェックしています。これは私にとっても役に立たない。 – Smirti

+0

アプリのどの部分で 'VerticalOffset'を変更していますか? ChangeView()メソッドを呼び出すときにUIがロードされていることを確認してください。 –

関連する問題