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