この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

FrameworkElement.ArrangeOverride メソッド

派生クラスでオーバーライドされると、子要素を配置し、FrameworkElement 派生クラスのサイズを決定します。

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

protected virtual Size ArrangeOverride(
	Size finalSize
)

パラメーター

finalSize
型: System.Windows.Size
この要素が要素自体と子を配置するために使用する親の末尾の領域。

戻り値

型: System.Windows.Size
使用する実際のサイズ。

継承時の注意

レイアウト処理の配置パスをカスタマイズするコントロール作成者は、このメソッドをオーバーライドする必要があります。 実装パターンでは、表示可能な各子要素の Arrange を呼び出して、各子要素の最終的な必要サイズを finalRect パラメーターとして渡します。 親要素では、各子要素の Arrange を呼び出す必要があります。呼び出さないと子要素は描画されません。

多くの派生クラスがこのメソッドの実装を提供しています。 Window.ArrangeOverride Page.ArrangeOverrideControl.ArrangeOverride などがその代表的な例です。

This example shows how to override the default layout behavior of the Panel element and create custom layout elements that are derived from Panel.

The example defines a simple custom Panel element called PlotPanel, which positions child elements according to two hard-coded x- and y-coordinates. In this example, x and y are both set to 50; therefore, all child elements are positioned at that location on the x and y axes.

To implement custom Panel behaviors, the example uses the MeasureOverride and ArrangeOverride methods. Each method returns the Size data that is necessary to position and render child elements.


public class PlotPanel : Panel
{
    // Default public constructor
    public PlotPanel()
        : base()
    {
    }

    // Override the default Measure method of Panel
    protected override Size MeasureOverride(Size availableSize)
    {
        Size panelDesiredSize = new Size();

        // In our example, we just have one child. 
        // Report that our panel requires just the size of its only child.
        foreach (UIElement child in InternalChildren)
        {
            child.Measure(availableSize);
            panelDesiredSize = child.DesiredSize;
        }

        return panelDesiredSize ;
    }
    protected override Size ArrangeOverride(Size finalSize)
    {
        foreach (UIElement child in InternalChildren)
        {
            double x = 50;
            double y = 50;

            child.Arrange(new Rect(new Point(x, y), child.DesiredSize));
        }
        return finalSize; // Returns the final Arranged size
    }
}


.NET Framework

サポート対象: 4、3.5、3.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
表示: