UIElement.ArrangeCore(Rect) メソッド

定義

WPF コア レベルの配置レイアウト定義のテンプレートを定義します。Defines the template for WPF core-level arrange layout definition.

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

親の末尾の領域。親の要素は要素自体と子を配置するために使用します。The final area within the parent that element should use to arrange itself and its child elements.

ArrangeCore の実装では、基本実装を呼び出してサイズを返した後、表示されている各子要素の Arrange メソッドを呼び出し、これらの Arrange 呼び出しによって返されるサイズを基本実装のサイズで調整する必要があります。ArrangeCore implementations should call the base implementation to return a size, then call the Arrange method of each visible child element, and reconcile the sizes returned by these Arrange calls with the size of the base implementation. ArrangeCore 実装の調整側面のロジックは、要素のレイアウト特性によって異なる場合があります。The logic for the reconciliation aspect of a ArrangeCore implementation might vary, depending on the layout characteristics of your element. 次のテンプレート例では、VisualChildren は、要素がその内容を列挙するために定義できる仮想的なプロパティです。このレベルでコンテンツコレクションを定義していない UIElement、WPF フレームワークレベルのアーキテクチャでは、コンテンツの動作が特定のコントロールやコントロールの基本クラスなどの派生要素に延期されます。In the following example template, VisualChildren is a hypothetical property that your element might define to help enumerate its content; UIElement does not define content collections at this level, the WPF framework-level architecture defers content behavior to derived elements such as specific controls or control base classes.

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 派生クラスを使用していない場合にのみです。これは、FrameworkElementArrangeCoreシールされているためです。Overriding this method is only appropriate if you are deriving at the WPF core-level, and you are not using the WPF framework-level layout system and FrameworkElement derived class, because FrameworkElement seals ArrangeCore. WPF フレームワークレベルレイアウトシステムを使用している場合は、クラス固有のレイアウトの配置動作をオーバーライドするための適切なメソッドが ArrangeOverrideます。If you are using the WPF framework-level layout system, the appropriate method to override for class-specific layout arrange behavior is ArrangeOverride.

注意 (継承者)

WPF のコアレベルで要素を開発している場合は、このメソッドをオーバーライドして、WPF コアレベルの要素に一意の配置レイアウト動作を与えるか、または要素の子要素について適切なレイアウト決定を行う必要があります。If you are developing elements at the WPF core level,you should override this method to give your WPF core-level element a unique arrange layout behavior, or to make proper layout decisions about the child elements of your elements. これらの子要素が、ItemCollectionなどの定義されたパターンから認識されない場合は、オーバーライドが必要になることがあります。An override might be necessary if those child elements are not recognizable from a defined pattern such as an ItemCollection.

親要素は、各子要素に対してクラス固有の Arrange(Rect) を呼び出す必要があります。そうでない場合、子要素はレンダリングされません。A parent element must call the class-specific Arrange(Rect) on each child element, otherwise those child elements are not rendered.

適用対象