このドキュメントはアーカイブされており、メンテナンスされていません。

UIElement.Measure メソッド

UIElementDesiredSize を更新します。親要素はそれぞれの MeasureCore 実装からこのメソッドを呼び出し、レイアウトを再帰的に更新します。このメソッドの呼び出しにより、レイアウト システムにおけるレイアウト更新の最初のパスが構成されます。

名前空間: System.Windows
アセンブリ: PresentationCore (presentationcore.dll 内)

public void Measure (
	Size availableSize
)
public void Measure (
	Size availableSize
)
public function Measure (
	availableSize : Size
)
メソッドは XAML では使用できません。

パラメータ

availableSize

親要素が子要素を割り当てることができる、使用可能な領域。子要素は、使用可能な領域よりも広い領域を要求できます。現在の要素のコンテンツ モデルでスクロールが可能な場合は、要求されたサイズが受け入れられることがあります。

Windows Presentation Foundation (WPF) では、レイアウト位置の計算は Measure 呼び出しと Arrange 呼び出しによって行われます。Measure の呼び出し中には、availableSize の入力値を使用して、要素がそのサイズ要件を判断します。Arrange の呼び出し中に、要素の最終サイズが決定されます。

availableSize には、ゼロから無限大までの任意の数値を指定できます。配置対象の要素は、指定された availableSize に対して必要な Size の最小値を返します。

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

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

メモメモ :

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

レイアウト システムは、無効なレイアウトに関する 2 つの異なるキューを保持しています。1 つは Measure 用、もう 1 つは Arrange 用です。レイアウト キューは、要素のビジュアル ツリー内の要素の順序に基づいて並べ替えられます。親が繰り返し変更されることによってレイアウト処理を無駄に繰り返す必要がないように、ツリーの上位にある要素がキューの先頭に配置されます。重複するエントリはキューから自動的に削除され、既にレイアウトが有効になった要素もキューから自動的に削除されます。

レイアウトを更新すると、まず Measure キューが空になり、続いて Arrange キューが空になります。Measure キューに要素が存在する場合、Arrange キューの要素は並べ替えられません。

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0
表示: