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

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

注釈

Windows Presentation Foundation (WPF) でのレイアウト配置のMeasure計算は、呼び出しと呼び出しでArrange構成されます。 呼び出し中に Measure 、要素は入力を使用してそのサイズ要件を availableSize 決定します。 呼び出し Arrange 中に、要素のサイズが確定します。

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

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

レイアウトの更新は非同期的に行われます。これにより、メイン スレッドは、可能なすべてのレイアウト変更を待機しません。 プロパティ値の分離コード チェックを使用して要素に対してクエリを実行しても、サイズ変更やレイアウト特性 (プロパティなど) と対話するプロパティの Width 変更が直ちに反映されない場合があります。

注意

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

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

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

適用対象