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

注釈

注意

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

注意 (継承者)

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

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

適用対象