UIElement.Measure(Size) 메서드

정의

UIElementDesiredSize를 업데이트합니다.Updates the DesiredSize of a UIElement. 부모 요소는 재귀적 레이아웃 업데이트를 구성하기 위해 해당 MeasureCore(Size) 구현에서 이 메서드를 호출합니다.Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. 이 메서드 호출은 레이아웃 업데이트의 첫 번째 단계("측정" 단계)를 구성합니다.Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

매개 변수

availableSize
Size

부모 요소에서 자식 요소를 할당할 수 있는 사용 가능한 공간입니다.The available space that a parent element can allocate a child element. 자식 요소는 사용 가능한 공간보다 큰 공간을 요청할 수 있습니다. 현재 요소에 대한 콘텐츠 모델에서 스크롤이 가능한 경우 제공된 크기를 수용할 수 있습니다.A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

설명

WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF)의 레이아웃 위치 계산은 Measure 호출과 Arrange 호출로 구성 됩니다.Computation of layout positioning in WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. Measure를 호출 하는 동안 요소는 availableSize 입력을 사용 하 여 크기 요구 사항을 결정 합니다.During the Measure call, an element determines its size requirements by using an availableSize input. Arrange를 호출 하는 동안 요소 크기가 완성 됩니다.During the Arrange call, the element size is finalized.

0에서 무한 까지의 임의의 수 availableSize 수 있습니다.availableSize can be any number from zero to infinite. 레이아웃에 참여 하는 요소는 지정 된 availableSize에 필요한 최소 Size 반환 해야 합니다.Elements participating in layout should return the minimum Size they require for a given availableSize.

레이아웃을 처음 인스턴스화하면 Arrange전에 항상 Measure 호출을 받습니다.When a layout is first instantiated, it always receives a Measure call before Arrange. 그러나 첫 번째 레이아웃 단계 후에는 Measure없이 Arrange 호출을 받을 수 있습니다. 이는 Arrange에만 영향을 주는 속성 (예: 맞춤)이 변경 되거나 부모에서 Measure없는 Arrange을 받는 경우에 발생할 수 있습니다.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. Measure 호출은 Arrange 호출을 자동으로 무효화 합니다.A Measure call will automatically invalidate an Arrange call.

레이아웃 업데이트 가능한 모든 레이아웃이 변경에 대 한 주 스레드 기다리고 있지 않으면는 비동기적으로 수행 합니다.Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. 속성 값에 대 한 코드 기반 검사를 통해 요소를 쿼리하면 크기 조정 또는 레이아웃 특성 (예: Width 속성)과 상호 작용 하는 속성에 대 한 변경 내용이 즉시 반영 되지 않을 수 있습니다.Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

참고

UpdateLayout 메서드를 사용 하 여 레이아웃 업데이트를 강제로 수행할 수 있습니다.Layout updates can be forced by using the UpdateLayout method. 그러나이 메서드를 호출 합니다. 일반적으로 필요 하지 않으며 성능이 저하 될 수 있습니다.However, calling this method is usually unnecessary and can cause poor performance.

레이아웃 시스템은 두 개의 개별 큐가 잘못 된 레이아웃을 유지 합니다. 하나는 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 of the element performing layout; elements higher in the tree are at the top of the queue, 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 layout-validated.

레이아웃을 업데이트할 때 Measure 큐가 먼저 비워지고 Arrange 큐가 나옵니다.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Measure 큐에 요소가 있으면 Arrange 큐의 요소가 정렬 되지 않습니다.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

적용 대상