UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) Method

定義

UIElementDesiredSize を更新します。Updates the DesiredSize of a UIElement. 親要素は、独自の MeasureCore(Size) 実装からこのメソッドを呼び出し、レイアウトを再帰的に更新します。Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. このメソッドの呼び出しは、レイアウト更新の最初のパス (「メジャー」パス) となります。Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

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 Size Size Size

親要素が子要素を割り当てることができる使用可能な領域。The available space that a parent element can allocate a child element. 子要素は使用可能な空間よりも大きな空間を要求できます。現在の要素のコンテンツ モデルでスクロールが可能な場合、指定されたサイズに対応できる可能性があります。A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

注釈

レイアウトの配置での計算Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)で構成をMeasureを呼び出すとArrange呼び出します。Computation of layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. 中に、Measure呼び出し、要素を使用してそのサイズ要件を決定する、availableSize入力します。During the Measure call, an element determines its size requirements by using an availableSize input. 中に、Arrange要素のサイズの呼び出しを終了します。During the Arrange call, the element size is finalized.

availableSize 任意の数を無制限に 0 を指定できます。availableSize can be any number from zero to infinite. 要素のレイアウトに参加しているが、最小値を返す必要がありますSizeの必要な指定されたavailableSizeします。Elements participating in layout should return the minimum Size they require for a given availableSize.

常に受信レイアウトが初めてインスタンス化されたときに、Measure前に呼び出すArrangeします。When a layout is first instantiated, it always receives a Measure call before Arrange. ただし、最初のレイアウト パスの後に受け取る場合があります、Arrangeせずに呼び出す、 Measure; 場合のみに影響を与えるプロパティArrange(配置) などが変更された親を受け取ったとき、または、Arrangeせず、 Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. AMeasure呼び出しが自動的に無効になり、Arrange呼び出します。A Measure call will automatically invalidate an Arrange call.

レイアウトの更新は、あらゆるレイアウトの変更をメイン スレッドが待機していないように、非同期的に発生します。Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. 分離コードのプロパティ値のチェックを使用して要素のクエリを実行しても、そのサイズやレイアウトの特性と対話するプロパティの変更がすぐに反映可能性がありますされません (、Widthプロパティなど)。Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

注意

使用してレイアウトの更新を強制することができます、UpdateLayoutメソッド。Layout updates can be forced by using the UpdateLayout method. ただし、このメソッドを呼び出すことは通常必要はありません、パフォーマンスの低下が発生することができます。However, calling this method is usually unnecessary and can cause poor performance.

レイアウト システムは 2 つの異なるキューのいずれか、無効なレイアウトのMeasureとに 1 つずつArrangeします。The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. レイアウトのキューはレイアウトを実行する要素のビジュアル ツリー内の要素の順序に基づいて並べ替えられますツリーの上位の要素では、親の変更を繰り返すことによって、冗長なレイアウトを回避するために、キューの上部にあります。The layout queue is sorted based upon the order of elements in the visual tree of the element performing layout; elements higher in the tree are at the top of the queue, to avoid redundant layouts caused by repeated changes in parents. 重複するエントリは自動的に、キューから削除し、レイアウト検証は既に要素も、キューから自動的に削除します。Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already layout-validated.

レイアウトを更新するときに、Measureキューが最初に、空に続けて、Arrangeキュー。When updating layout, the Measure queue is emptied first, followed by the Arrange queue. 内の要素、Arrange内の要素がある場合、キューは配置しない、Measureキュー。An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

適用対象