UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) Method

정의

자식 요소를 배치하고 UIElement에 대한 크기를 결정합니다.Positions child elements and determines a size for a UIElement. 부모 요소는 재귀적 레이아웃 업데이트를 구성하기 위해 해당 ArrangeCore(Rect) 구현(또는 WPF 프레임워크 수준)에서 이 메서드를 호출합니다.Parent elements call this method from their ArrangeCore(Rect) implementation (or a WPF framework-level equivalent) to form a recursive layout update. 이 메서드는 레이아웃 업데이트의 두 번째 단계를 구성합니다.This method constitutes the second pass of a layout update.

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)

매개 변수

finalRect
Rect Rect Rect Rect

부모가 자식 요소에 대해 계산하는 최종 크기로, Rect 인스턴스로 제공됩니다.The final size that the parent computes for the child element, provided as a Rect instance.

설명

시나리오에 대 한 동작을 파생 하는 WPF 프레임 워크 수준 요소에 대 한 Arrange 안 (및 숨기는 경우가 아니면 없습니다) 변경할 수 있습니다.For WPF framework-level element deriving scenarios, behavior for Arrange should not (and cannot, unless you shadow) be changed. 대신를 재정의 해야 하는 ArrangeOverride 클래스에서 구현 합니다.Instead, you should override the ArrangeOverride implementation in your class. 프로그램 ArrangeOverride 구현에서 내부적으로 호출 됩니다 Arrange 기본 WPF 프레임 워크 수준 레이아웃 작업의 일환으로 합니다.Your ArrangeOverride implementation is called internally by Arrange as part of default WPF framework-level layout operations. 프로그램 ArrangeCore 구현도 호출 해야 ArrangeOverride 각 자식 요소에 자식 요소가 있는 경우에 합니다.Your ArrangeCore implementation should also call ArrangeOverride on each child element, if it has child elements.

시나리오에 대 한 동작을 파생 하는 WPF 핵심 수준 요소에 대 한 Arrange 안 (및 숨기는 경우가 아니면 없습니다) 변경할 수 있습니다.For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. 재정의 해야 대신 ArrangeCore 클래스에서입니다.Instead, you should override ArrangeCore in your class. 프로그램 ArrangeCore 구현에서 내부적으로 호출 됩니다 Arrange 기본 WPF 프레임 워크 수준 레이아웃 작업의 일환으로 합니다.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. 그러나이 가정 WPF 프레임 워크 수준 레이아웃 및 종종 되지 않는 경우 WPF 핵심 수준에서 요소를 파생 하는 경우 해당 레이아웃 시스템을 사용 하는 UIElement 기본 요소 클래스입니다.However, this assumes you are using WPF framework-level layout and its layout system, which is often not the case if you are specifically deriving elements at the WPF core-level from the UIElement base element class. 프로그램 ArrangeCore 구현도 호출 해야 Arrange 각 자식 요소에 자식 요소가 있는 경우에 합니다.Your ArrangeCore implementation should also call Arrange on each child element, if it has child elements. WPF 핵심 수준 시나리오는 사용 하지 않는 의미 하는 참고를 FrameworkElement 파생 클래스를 FrameworkElement 봉인 ArrangeCore합니다.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

WPF 프레임 워크 수준 레이아웃 위치에서 계산 WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) 이루어져를 Measure 호출 및 Arrange 호출 합니다.Computation of WPF framework-level layout positioning in WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) consists of a Measure call and an Arrange call. 중 합니다 Measure 호출 레이아웃 시스템 제공을 사용 하 여 요소의 크기 요구 사항을 결정 Size (availableSize) 인수입니다.During the Measure call, the layout system determines an element's size requirements using a provided Size (availableSize) argument. 중를 Arrange 호출 레이아웃 시스템 크기를 종료 하 고 경계 상자 요소의 위치를 지정 합니다.During the Arrange call, the layout system finalizes the size and position of an element's bounding box. 자세한 내용은 레이아웃을 참조하세요.For more information, see Layout.

availableSize 0 ~ 무한대에서에서 숫자를 수 있습니다.availableSize can be any number from zero to infinity. 최소값을 반환 하는 요소를 배치 Size 를 통해 필요한를 availableSize 매개 변수입니다.Elements to be laid out return the minimum Size they require through the availableSize parameter.

레이아웃을 처음 인스턴스화될 때 항상 수신한를 Measure 하기 전에 호출 Arrange합니다.When a layout is first instantiated, it always receives a Measure call before Arrange. 그러나 첫 번째 레이아웃 패스 후 받을 수는 Arrange 없이 호출을 Measure; 경우에 영향을 주는 속성을이 발생할 수 있습니다 Arrange (예: 맞춤)을 변경 또는 부모를 받을 때는 Arrange 없이 Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. A Measure 호출을 자동으로 무효화 됩니다는 Arrange 호출 합니다.A Measure call will automatically invalidate an Arrange call.

레이아웃 업데이트는 일반적으로 비동기적으로 (한 번에 레이아웃 시스템에 의해 결정) 발생 합니다.Layout updates generally occur asynchronously (at a time determined by the layout system). 요소 속성 요소 크기 조정에 영향을 주는 변경 내용은 즉시 반영 하지는 않습니다 (같은 Width).An element might not immediately reflect changes to properties that affect element sizing (such as Width).

참고

레이아웃 업데이트를 사용 하 여 강제로 적용할 수 있습니다는 UpdateLayout 메서드도 있습니다; 그러나이 함수를 호출 합니다. 권장 되지 않습니다 일반적으로 필요 하지 않습니다 하 고 성능 저하를 초래할 수 있습니다.Layout updates can be forced by using the UpdateLayout method; however, calling this function is not recommended, as it is usually unnecessary and can cause poor performance. 대부분의 경우에서 호출 하는 경우 UpdateLayout 레이아웃 시스템이 이미 처리 하는 업데이트를 적절 한 수입니다.In many situations where calling UpdateLayout might be appropriate, the layout system will probably already be processing updates. 레이아웃 시스템에 필요한 모든 업데이트 패키지의 일부로 최적화할 수 있는 방식으로 레이아웃 변경 내용을 처리할 수 있습니다.The layout system can process layout changes in a manner that can optimize all necessary updates as part of a package.

레이아웃 시스템에 대 한 잘못 된 레이아웃의 두 개의 별도 큐를 유지 Measure 개와 Arrange합니다.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. 레이아웃 큐 시각적 트리에 있는 요소의 순서에 따라 정렬 됩니다.The layout queue is sorted based upon the order of elements in the visual tree. 요소 트리에서 더 높은 큐의 맨 위에 있는 부모에서 반복적인된 변경 내용이 레이아웃이 중복을 방지 하기 위해 됩니다.Elements higher in the tree are at the top of the queue, in order to avoid redundant layouts caused by repeated changes in parents. 중복 항목은 자동으로 큐에서 제거 하 고 요소가 이미 유효 하지 않은 경우 자동으로 큐에서 제거 됩니다.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already valid.

레이아웃을 업데이트 하는 경우는 Measure 큐를 비울 먼저 뒤에 Arrange 큐입니다.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. 요소를 Arrange 큐에서 요소 이면 정렬 되지 됩니다는 Measure 큐입니다.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

적용 대상