UIElement.Measure 메서드

2013-12-13

UIElementDesiredSize를 업데이트합니다. 일반적으로 레이아웃 자식에 대해 사용자 지정 레이아웃을 구현하는 개체는 자체 MeasureOverride 구현에서 이 메서드를 호출하여 재귀적 레이아웃 업데이트를 형성합니다.

Namespace:  System.Windows
어셈블리:  System.Windows(System.Windows.dll)

public void Measure(
	Size availableSize
)

매개 변수

availableSize
형식: System.Windows.Size
부모가 자식 개체에 할당할 수 있는 공간입니다. 자식 개체는 사용 가능한 것보다 큰 공간을 요청할 수 있습니다. 해당 특정 컨테이너에서 스크롤 또는 다른 크기 조정 동작이 가능한 경우에는 제공되는 공간이 조정될 수 있습니다.

예외조건
InvalidOperationException

availableSizeDouble.NaN 값이 포함된 경우. 설명을 참조하세요.

사용자 지정 레이아웃 작업을 수행하는 재정의 메서드 컨텍스트 밖에서는 Measure 또는 Arrange를 호출할 이유가 없습니다. Windows Phone 레이아웃은 런타임에 감지된 개체 트리 및 레이아웃 관련 속성 변경에 따라 자율적으로 동작합니다. 자세한 내용은 Windows Phone의 레이아웃을 참조하세요.

Measure에 전달하는 availableSizeSizeHeight 또는 Width에 대한 Double.NaN 값은 가질 수 없습니다. availableSize 값은 0부터 무한까지의 모든 숫자가 될 수 있습니다. 레이아웃에 관여되는 요소는 지정된 availableSize에 대해 필요로 하는 최소 Size를 반환해야 합니다.

다음 예제에서는 MeasureOverride를 구현하여 사용자 지정 패널 구현에 대한 측정 처리 단계 논리를 사용자 지정합니다. 특히 코드의 다음 측면을 확인합니다.

  • 자식에 대해 반복됩니다.

  • 패널 논리에서 자식 수를 처리하는 방법 및 알려진 해당 크기 제한을 기반으로 하는 Size를 사용하여 각 자식에 대해 Measure를 호출합니다.

  • 해당 크기를 반환합니다. 이 경우 이 단순한 패널은 치수를 집계할 때 계산된 크기 대신 고정 크기를 반환합니다.


// First measure all children and return available size of panel
protected override Size MeasureOverride(Size availableSize)
{

    // Measure first 9 children giving them space up to 100x100, remaining children get 0x0 
    int i =0;
    foreach (FrameworkElement child in Children)
    {
        if (i < 9)
        {
            child.Measure(new Size(100, 100));
        }
        else
        {
            child.Measure(new Size(0, 0));
        }

        i++;
    }


    // return the size available to the whole panel, which is 300x300
    return new Size(300,300);
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시:
© 2014 Microsoft