UIElement.InvalidateMeasure UIElement.InvalidateMeasure UIElement.InvalidateMeasure UIElement.InvalidateMeasure Method


要素の測定状態 (レイアウト) を無効にします。Invalidates the measurement state (layout) for the element.

 void InvalidateMeasure();
public void InvalidateMeasure ();
member this.InvalidateMeasure : unit -> unit
Public Sub InvalidateMeasure ()


このメソッドを呼び出すInvalidateArrangeと、内部的にも呼び出されInvalidateMeasureますInvalidateArrangeが、とを連続して呼び出す必要はありません。Calling this method also calls InvalidateArrange internally, there is no need to call InvalidateMeasure and InvalidateArrange in succession. 無効化の後、要素のレイアウトが更新されます。同期レイアウトの変更をUpdateLayout強制するためにが呼び出されている場合を除き、非同期的に実行されます。After the invalidation, the element will have its layout updated, which will occur asynchronously, unless UpdateLayout is called to force a synchronous layout change.

WPF フレームワークレベルのレイアウトシステムでは、要素のビジュアルツリー内の変更に対して独自の処理が行われます。また、ほとんどのレイアウトの無効化の場合、レイアウトシステムは必要に応じて、このメソッドに相当するものを呼び出します。The WPF framework-level layout system does its own handling of changes in the visual tree of an element, and in most common layout invalidation cases the layout system is calling the equivalent of this method when necessary. このメソッドは、要素ツリーを直接操作するレイアウトの完全な実装を生成する場合、または同様の高度なシナリオを行う場合にのみ呼び出す必要があります。You should only call this method if you are producing a complete layout implementation, which does direct manipulation of the element tree, or similar advanced scenarios. このような高度なシナリオの1つはPropertyChangedCallbackFreezableまたはFrameworkElement派生クラスではなく、変更時にレイアウトの測定パスに影響を与える依存関係プロパティのを作成する場合です。One such advanced scenario is if you are creating a PropertyChangedCallback for a dependency property that is not on a Freezable or FrameworkElement derived class that still influences the measure pass of layout when it changes.

特にまたInvalidateMeasureはを頻繁にUpdateLayout呼び出すことは、パフォーマンスに大きな影響を与えます。Frequent calls to InvalidateMeasure or in particular to UpdateLayout have significant performance consequences. したがって、コード内のその後のAPIAPIs呼び出しに対して正確なレイアウト状態が必要な場合を除き、このメソッドを呼び出さないでください。Therefore, avoid calling this method unless you absolutely require precise layout state for subsequent calls to other APIAPIs in your code.