1

私は作業していて、呼び出し時に、またはこれがイベントの発生に遅延効果があるように見えることScrollViewerに気付きました。また、設定したばかりの値がプロパティにすぐに反映されないことにも気付きました。しばらくすると、イベントが発生し、プロパティに適切な値が設定されます。ScrollToHorizontalOffsetScrollToVerticalOffsetScrollChangedHorizontalOffset/VerticalOffsetScrollChanged

Does anyone know the reason for this delayed effect? Why doesn't it update immediately? Is there anyway to force it to update immediately?

4

1 に答える 1

3

この遅延効果の理由は、ScrollViewer 自体の内部にあります。ScrollToHorizo​​ntalOffset() を呼び出すたびに、リクエストが LayoutUpdated イベントで処理される内部処理キューに追加されます。このイベントをトリガーするために、ScrollViewer は内部コントロールの配置を無効にします。アレンジ パスが完了した後でのみ (ArangeOverride() がビジュアル ツリーで処理されます)、ScrollChanged イベントが発生します。

あなたの最後の質問に行く:「すぐに更新するように強制する方法はありますか?」、ScrollViewerのコンテンツができるだけ速く配置されるようにするためのアドバイスしかできませんでした。これよりも簡単な方法は他に考えられません...

なぜそのイベントをすぐに発生させる必要があるのか​​ を言うことができれば、この答えよりも良いものを提案できるかもしれません:)?

于 2009-09-01T21:54:40.137 に答える