イベントscrolltoVerticalOffsetまたはscrolltoHorizontalOffsetは、scrollviewerの値を変更しません。値HorizontalOffsetとVerticalOffsetが変更されるイベントを教えてください。LayoutUpdated()メソッドを試しましたが、無限ループになります。
前もって感謝します
イベントscrolltoVerticalOffsetまたはscrolltoHorizontalOffsetは、scrollviewerの値を変更しません。値HorizontalOffsetとVerticalOffsetが変更されるイベントを教えてください。LayoutUpdated()メソッドを試しましたが、無限ループになります。
前もって感謝します
一般に、との値はHorizontalOffset
、(またはその他の)が値を更新してInvalidateScrollInfo()を呼び出した後のイベントVerticalOffset
中を除いて、更新されません。唯一の例外は、これらのそれぞれのDependencyPropertyが遅延スクロール中に更新されることです(ただし、驚くべきことに、対応するCLRプロパティは更新されません)が、これはおそらくあなたの場合には当てはまりません。LayoutUpdated
ScrollContentPresenter
IScrollInfo
ScrollToHorizontalOffset
WPFにはまたはScrollToVerticalOffset
イベントはありませんが、これらの名前にはScrollViewer
メソッドとaRoutedCommand
の両方があります。コマンドバージョンとメソッドバージョンの両方がリクエストを記憶し、次のLayoutUpdated
イベントで実行するため、スクロールが確実に行われるようにするだけの場合は、コマンドを送信するか、メソッドを呼び出します。
を確認したい場合、HorizontalOffset
または実際に必要に応じて更新されている場合は、次のように、値が更新された後に発生するをVerticalOffset
キャッチできます。ScrollChangedEvent
scrollViewer.ScrollChanged += (obj, e) =>
{
// Get offset information from 'e' or from scrollViewer
}
「LayoutUpdated()メソッド」とは何かを説明していなかったため、「LayoutUpdated()メソッドを試しましたが、無限ループになります」の意味がわかりませんでしたが、上記の情報でイベントの順序が決まります。明確にし、解決策に向かう途中であなたを助けます。いずれにせよ、決定を下すために必要なすべての情報は、ScrollChanged
イベントから入手できる必要があります。
解決策を投稿してくれてありがとう、私は同じ問題に遭遇しました。LayoutUpdated() メソッドはフレームワークによって無限ループで呼び出されます。LayoutUpdated() の代わりに ScrollChanged() を使用すると、問題が修正されます。