UIElement.Measure(Size) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
UIElement의 DesiredSize를 업데이트합니다. 부모 요소는 재귀적 레이아웃 업데이트를 구성하기 위해 해당 MeasureCore(Size) 구현에서 이 메서드를 호출합니다. 이 메서드 호출은 레이아웃 업데이트의 첫 번째 단계("측정" 단계)를 구성합니다.
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
부모 요소에서 자식 요소를 할당할 수 있는 사용 가능한 공간입니다. 자식 요소는 사용 가능한 공간보다 큰 공간을 요청할 수 있습니다. 현재 요소에 대한 콘텐츠 모델에서 스크롤이 가능한 경우 제공된 크기를 수용할 수 있습니다.
설명
WPF(Windows Presentation Foundation)의 레이아웃 위치 계산은 호출 및 호출로 Measure Arrange 구성됩니다. 호출 중에 Measure 요소는 입력을 사용하여 availableSize
크기 요구 사항을 결정합니다. 호출하는 Arrange 동안 요소 크기가 완료됩니다.
availableSize
은 0에서 무한까지의 임의의 숫자일 수 있습니다. 레이아웃에 참여하는 요소는 지정된 availableSize
요소에 필요한 최소값 Size 을 반환해야 합니다.
레이아웃이 처음 인스턴스화되면 항상 이전에 Arrange호출을 Measure 받습니다. 그러나 첫 번째 레이아웃이 통과한 후에는 호출을 받지 Arrange 않을 Measure수 있습니다. 이는 영향을 주는 속성만 Arrange 변경(예: 맞춤)하거나 부모가 Arrange Measure없이 수신할 때 발생할 수 있습니다. 호출이 Measure 자동으로 호출을 무효화합니다 Arrange .
레이아웃 업데이트는 주 스레드가 가능한 모든 레이아웃 변경을 기다리지 않도록 비동기적으로 발생합니다. 속성 값의 코드 숨김 검사를 통해 요소를 쿼리해도 크기 조정 또는 레이아웃 특성(예: 속성)과 상호 작용하는 속성의 변경 내용이 Width 즉시 반영되지 않을 수 있습니다.
참고
레이아웃 업데이트는 메서드를 사용하여 UpdateLayout 강제 적용할 수 있습니다. 그러나 이 메서드를 호출하는 것은 일반적으로 불필요하며 성능 저하를 일으킬 수 있습니다.
레이아웃 시스템은 잘못된 레이아웃의 두 개의 별도 큐를 유지합니다.Measure Arrange 레이아웃 큐는 레이아웃을 수행하는 요소의 시각적 트리에 있는 요소 순서에 따라 정렬됩니다. 트리의 상위 요소는 부모의 반복적인 변경으로 인한 중복 레이아웃을 방지하기 위해 큐의 맨 위에 있습니다. 중복 항목은 큐에서 자동으로 제거되고 요소가 이미 레이아웃 유효성이 검사된 경우 큐에서 자동으로 제거됩니다.
레이아웃을 업데이트할 때 큐가 Measure 먼저 비워지고 큐가 그 뒤에 옵니다 Arrange . 큐에 Arrange 요소가 있으면 큐의 요소가 Measure 정렬되지 않습니다.