UIElement.Arrange(Rect) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
자식 요소를 배치하고 에 대한 UIElement크기를 결정합니다. 부모 요소는 해당 구현(또는 WPF 프레임워크 수준과 동등한)에서 ArrangeCore(Rect) 이 메서드를 호출하여 재귀 레이아웃 업데이트를 형성합니다. 이 메서드는 레이아웃 업데이트의 두 번째 패스를 구성합니다.
public:
void Arrange(System::Windows::Rect finalRect);
public void Arrange(System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)
매개 변수
설명
WPF 프레임워크 수준 요소 파생 시나리오의 경우 Arrange 대한 동작은 변경해서는 안 됩니다(그림자가 아닌 한 변경할 수 없음). 대신 클래스의 구현을 재정의 ArrangeOverride 해야 합니다. ArrangeOverride 구현은 기본 WPF 프레임워크 수준 레이아웃 작업의 일부로 Arrange 내부적으로 호출됩니다. 또한 구현은 ArrangeCore 자식 요소가 있는 경우 각 자식 요소를 호출 ArrangeOverride 해야 합니다.
WPF 코어 수준 요소 파생 시나리오의 경우 Arrange 동작은 변경해서는 안 됩니다(그림자가 아닌 경우). 대신 클래스에서 재정 ArrangeCore 의해야 합니다. ArrangeCore 구현은 기본 WPF 프레임워크 수준 레이아웃 작업의 일부로 Arrange 내부적으로 호출됩니다. 그러나 WPF 프레임워크 수준 레이아웃과 해당 레이아웃 시스템을 사용한다고 가정합니다. 이는 UIElement 기본 요소 클래스에서 WPF 코어 수준에서 요소를 구체적으로 파생시키는 경우에는 그렇지 않은 경우가 많습니다. 또한 구현은 ArrangeCore 자식 요소가 있는 경우 각 자식 요소를 호출 Arrange 해야 합니다. WPF 코어 수준 시나리오는 FrameworkElement 파생 클래스를 사용하지 않음을 의미합니다. FrameworkElement 씰은 ArrangeCore.
WPF(Windows Presentation Foundation)의 WPF 프레임워크 수준 레이아웃 위치 계산은 Measure 호출 및 Arrange 호출로 구성됩니다. 호출 중에 Measure 레이아웃 시스템은 제공된 Size (availableSize) 인수를 사용하여 요소의 크기 요구 사항을 결정합니다. 호출하는 Arrange 동안 레이아웃 시스템은 요소 경계 상자의 크기와 위치를 마무리합니다. 자세한 내용은 레이아웃을 참조 하세요.
availableSize 은 0에서 무한대까지의 임의의 숫자일 수 있습니다. 배치할 요소는 매개 변수를 통해 필요한 최소 Size 값을 반환합니다 availableSize .
레이아웃이 처음 인스턴스화되면 항상 전에 Measure호출을 Arrange 받습니다. 그러나 첫 번째 레이아웃 패스 후에는 호출을 수신 Arrange 할 수 있습니다. Measure영향을 주는 속성만 Arrange 변경(예: 맞춤)하거나 부모가 없이 수신 ArrangeMeasure할 때 발생할 수 있습니다. 호출이 Measure 자동으로 호출을 무효화합니다 Arrange .
레이아웃 업데이트는 일반적으로 비동기적으로 발생합니다(레이아웃 시스템에 의해 결정되는 시간에). 요소 크기 조정(예: Width)에 영향을 주는 속성의 변경 내용을 요소에 즉시 반영하지 않을 수 있습니다.
메모
레이아웃 업데이트는 메서드를 사용하여 UpdateLayout 강제 적용할 수 있지만 일반적으로 불필요하고 성능 저하를 일으킬 수 있으므로 이 함수를 호출하는 것은 권장되지 않습니다. 호출 UpdateLayout 이 적절할 수 있는 많은 상황에서 레이아웃 시스템은 이미 업데이트를 처리하고 있을 것입니다. 레이아웃 시스템은 패키지의 일부로 필요한 모든 업데이트를 최적화할 수 있는 방식으로 레이아웃 변경을 처리할 수 있습니다.
레이아웃 시스템은 잘못된 레이아웃의 두 개의 별도 큐를 유지합니다. 하나는
레이아웃을 업데이트할 때 큐가 Measure 먼저 비워지고 큐가 뒤에 옵니다 Arrange . 큐에 Arrange 요소가 있으면 큐의 요소가 Measure 정렬되지 않습니다.