UIElement.Measure(Size) メソッド

定義

UIElementDesiredSize を更新します。 親要素は、独自の MeasureCore(Size) 実装からこのメソッドを呼び出し、レイアウトを再帰的に更新します。 このメソッドの呼び出しは、レイアウト更新の最初のパス (「メジャー」パス) となります。

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

パラメーター

availableSize
Size

親要素が子要素を割り当てることができる使用可能な領域。 子要素は使用可能な空間よりも大きな空間を要求できます。現在の要素のコンテンツ モデルでスクロールが可能な場合、指定されたサイズに対応できる可能性があります。

注釈

メソッド (WPF) でのWindows Presentation Foundationの計算は、呼び出しと Measure 呼び出しで構成 Arrange されます。 呼び Measure 出し中に、要素は入力を使用してサイズ要件を決定 availableSize します。 呼び Arrange 出し中に、要素のサイズが終了します。

availableSize には、0 から無限の任意の数値を指定できます。 レイアウトに参加している要素は、特定の に必要 Size な最小値を返す必要があります availableSize

レイアウトが最初にインスタンス化されると、常に の前に呼び出し Measure を受け取ります Arrange 。 ただし、最初のレイアウトが渡された後は、 なしで呼び出しを受け取る場合があります。これは、 にのみ影響を与えるプロパティが変更された場合 (配置など)、または親が なしで を受け取った場合に発生する可能性 Arrange Measure Arrange Arrange があります Measure 。 呼 Measure び出しによって、呼び出しが自動的に Arrange 無効になります。

レイアウトの更新は非同期的に行います。メイン スレッドは、考えられるすべてのレイアウト変更を待機しているのではありません。 プロパティ値のコード背後チェックを使用して要素に対してクエリを実行すると、サイズ設定やレイアウトの特性 (プロパティなど) と対話するプロパティの変更がすぐに反映されない Width 場合があります。

注意

レイアウトの更新は、 メソッドを使用して強制 UpdateLayout できます。 ただし、このメソッドの呼び出しは通常不要であり、パフォーマンスが低下する可能性があります。

レイアウト システムでは、無効なレイアウトの 2 つの異なるキューが保持されます。1 つは 用、もう Measure 1 つは 用です Arrange 。 レイアウト キューは、レイアウトを実行する要素のビジュアル ツリー内の要素の順序に基づいて並べ替えられます。ツリー内の上位の要素は、親の繰り返しの変更によって発生する冗長なレイアウトを回避するために、キューの一番上に配置されます。 重複するエントリはキューから自動的に削除され、要素は既にレイアウト検証されている場合はキューから自動的に削除されます。

レイアウトを更新すると、キューが先に空にされ、その後 Measure にキューが空 Arrange にされます。 キューに要素がある場合、キュー内の要素 Arrange は配置 Measure されません。

適用対象