UIElement.ArrangeCore(Rect) メソッド

定義

コア レベルの配置レイアウト定義WPFテンプレートを定義します。

protected:
 virtual void ArrangeCore(System::Windows::Rect finalRect);
protected virtual void ArrangeCore(System.Windows.Rect finalRect);
abstract member ArrangeCore : System.Windows.Rect -> unit
override this.ArrangeCore : System.Windows.Rect -> unit
Protected Overridable Sub ArrangeCore (finalRect As Rect)

パラメーター

finalRect
Rect

要素自体とその子要素を配置するために使用する親内の最後の領域。

ArrangeCore 実装では、基本実装を呼び出してサイズを返し、表示される各子要素の Arrange メソッドを呼び出し、これらの Arrange 呼び出しによって返されるサイズを基本実装のサイズと調整する必要があります。 ArrangeCore実装の調整の側面のロジックは、要素のレイアウト特性によって異なる場合があります。 次のテンプレート例では、VisualChildren は、要素がコンテンツの列挙に役立つ可能性がある架空のプロパティです。UIElement はこのレベルでコンテンツ コレクションを定義しません。WPF フレームワーク レベルのアーキテクチャでは、特定のコントロールやコントロールの基本クラスなどの派生要素にコンテンツの動作が延期されます。

protected override void ArrangeCore(Rect finalRect)
{
     //Call base, it will set offset and RenderBounds to the finalRect:
     base.ArrangeCore(finalRect);
     foreach (UIElement child in VisualChildren)
     {
         child.Arrange(new Rect(childX, childY, childWidth, childHeight));
     }
 }
Protected Overrides Sub ArrangeCore(ByVal finalRect As Rect)
     'Call base, it will set offset and RenderBounds to the finalRect:
     MyBase.ArrangeCore(finalRect)
     For Each child As UIElement In VisualChildren
         child.Arrange(New Rect(childX, childY, childWidth, childHeight))
     Next child
End Sub

注釈

Note

このメソッドのオーバーライドは、WPF コア レベルで派生していて、WPFフレームワーク レベルのレイアウト システムと FrameworkElement 派生クラスを使用していない場合にのみ適しています。これは、FrameworkElement シールArrangeCoreであるためです。 WPFフレームワーク レベルのレイアウト システムを使用している場合、クラス固有のレイアウト配置動作をオーバーライドする適切なメソッドは、ArrangeOverrideです。

注意 (継承者)

WPFコア レベルで要素を開発する場合は、このメソッドをオーバーライドして、WPFコア レベルの要素に固有の配置レイアウト動作を提供するか、要素の子要素に関する適切なレイアウト決定を行う必要があります。 これらの子要素が、 ItemCollectionなどの定義されたパターンから認識できない場合は、オーバーライドが必要になる場合があります。

親要素は、各子要素でクラス固有の Arrange(Rect) を呼び出す必要があります。それ以外の場合、それらの子要素はレンダリングされません。

適用対象