문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
이 설명서는 보관되지만 유지 되지 않습니다.

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(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
표시: