이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

UIElement.Arrange 메서드 (Rect)

 

자식 요소를 배치하고 UIElement의 크기를 결정합니다.부모 요소는 이 메서드를 ArrangeCore 구현 또는 이에 해당하는 WPF 프레임워크 수준 구현에서 호출하여 재귀적 레이아웃 업데이트를 형성합니다.이 메서드는 두 번째 레이아웃 업데이트 단계를 구성합니다.

네임스페이스:   System.Windows
어셈블리:  PresentationCore.dll의 PresentationCore

public void Arrange(
	Rect finalRect
)

매개 변수

finalRect

Rect 인스턴스로 제공되는, 자식 요소에 대해 부모가 계산하는 최종 크기입니다.

WPF 프레임워크 수준 요소 파생 시나리오의 경우 Arrange의 동작은 변경해서는 안 되며 섀도를 적용하는 경우가 아니면 변경할 수도 없습니다.대신 클래스에서 ArrangeOverride 구현을 재정의해야 합니다. ArrangeOverride 구현은 기본 WPF 프레임워크 수준 레이아웃 작업의 일부분으로 Arrange에서 내부적으로 호출합니다.또한 ArrangeCore 구현은 자식 요소가 있는 경우 각 자식 요소에서 ArrangeOverride를 호출해야 합니다.

WPF 핵심 수준 요소 파생 시나리오의 경우 Arrange의 동작은 변경해서는 안 되며 섀도를 적용하는 경우가 아니면 변경할 수도 없습니다.대신 클래스에서 ArrangeCore를 재정의해야 합니다. ArrangeCore 구현은 기본 WPF 프레임워크 수준 레이아웃 작업의 일부분으로 Arrange에서 내부적으로 호출합니다.이 과정에서는 사용자가 WPF 프레임워크 수준 레이아웃 및 해당 레이아웃 시스템을 사용하는 것으로 가정하지만, UIElement 기본 요소 클래스의 WPF 핵심 수준에서만 요소를 파생하는 경우에는 이를 사용하지 않는 경우가 많습니다.또한 ArrangeCore 구현은 자식 요소가 있는 경우 각 자식 요소에서 Arrange를 호출해야 합니다.WPF 핵심 수준 시나리오에서는 FrameworkElement 파생 클래스를 사용하지 않는다고 가정합니다. 이는 FrameworkElementArrangeCore를 봉인하기 때문입니다.

Windows Presentation Foundation (WPF)에서 WPF 프레임워크 수준 레이아웃 배치를 계산하는 작업은 Measure 호출 및 Arrange 호출로 구성됩니다. Measure 호출 중에 레이아웃 시스템은 제공된 Size(availableSize) 인수를 사용하여 요소의 크기 요구 사항을 결정합니다. Arrange 호출 중에 레이아웃 시스템은 요소 경계 상자의 크기와 위치를 종결합니다. 자세한 내용은 레이아웃을 참조하십시오.

availableSize는 0에서 무한대까지의 어떤 수든 가능합니다.레이아웃을 지정할 요소는 availableSize 매개 변수를 통해 필요로 하는 최소 Size를 반환합니다.

레이아웃을 처음 인스턴스화하면 항상 Arrange 전에 Measure 호출을 받습니다.그러나 첫 번째 레이아웃 과정 이후에 레이아웃은 Measure 없이 Arrange 호출을 받을 수 있습니다. 이는 Arrange에만 영향을 주는 맞춤 등의 속성이 변경되거나 부모가 Measure 없이 Arrange를 받는 경우에 발생할 수 있습니다. Measure를 호출하면 Arrange 호출이 자동으로 무효화됩니다.

레이아웃 업데이트는 대개 레이아웃 시스템에서 결정하는 시간에 비동기적으로 발생합니다.요소에는 Width 등의 요소 크기 조정에 영향을 주는 속성에 대한 변경 내용이 즉시 반영되지 않을 수 있습니다.

System_CAPS_note참고

레이아웃 업데이트는 UpdateLayout 메서드를 사용하여 강제 적용할 수 있지만, 이 함수는 대개 불필요하며 성능을 저하시킬 수 있으므로 호출하지 않는 것이 좋습니다. UpdateLayout을 호출하는 것이 적절한 상황에서는 레이아웃 시스템에서 이미 업데이트를 처리 중인 경우가 많습니다.레이아웃 시스템에서는 패키지의 일부로 필요한 업데이트를 모두 최적화하는 방식으로 레이아웃 변경 내용을 처리할 수 있습니다.

레이아웃 시스템에는 Measure에 대해 하나, 그리고 Arrange에 대해 하나 등과 같이 잘못된 레이아웃에 대해 두 개의 큐가 별도로 유지됩니다.레이아웃 큐는 시각적 트리에 있는 요소의 순서를 기준으로 정렬됩니다.부모에서 변경 내용이 반복되어 레이아웃이 중복되지 않도록 하기 위해 트리에서 상위 수준의 요소는 큐의 맨 위에 배치됩니다.중복 항목은 큐에서 자동으로 제거되고 이미 유효한 상태의 요소도 큐에서 자동으로 제거됩니다.

레이아웃을 업데이트할 때는 Measure 큐를 먼저 비우고 그 다음에 Arrange 큐를 비웁니다. Arrange 큐의 요소는 Measure 큐에 요소가 있는 경우 정렬되지 않습니다.

.NET Framework
3.0 이후에 사용 가능
Silverlight
2.0 이후에 사용 가능
Windows Phone Silverlight
7.0 이후에 사용 가능
맨 위로 이동
표시: