UIElement.MeasureCore(Size) 메서드

정의

파생 클래스에서 재정의되는 경우 자식 요소 콘텐츠의 크기를 고려하여 이 요소의 크기를 적절하게 조정하기 위한 측정 논리를 제공합니다.

protected:
 virtual System::Windows::Size MeasureCore(System::Windows::Size availableSize);
protected virtual System.Windows.Size MeasureCore (System.Windows.Size availableSize);
abstract member MeasureCore : System.Windows.Size -> System.Windows.Size
override this.MeasureCore : System.Windows.Size -> System.Windows.Size
Protected Overridable Function MeasureCore (availableSize As Size) As Size

매개 변수

availableSize
Size

부모 요소가 자식 요소에 할당할 수 있는 크기입니다.

반환

Size

레이아웃에서 이 요소에 필요한 크기입니다.

예제

일반적인 재정의 MeasureCore 는 이 대략적인 패턴을 따릅니다(호출 VisualChildren``VisualChildren 된 기본 제공 컬렉션이 없습니다. 요소가 유지 관리하는 자식 컬렉션을 나타내는 자리 표시자임).

protected override Size MeasureCore(Size availableSize)
{
    foreach (UIElement child in VisualChildren)
    {
        child.Measure(availableSize);
        // call some method on child that adjusts child size if needed
        _cache.StoreInfoAboutChild(child);
    }
    Size desired = CalculateBasedOnCache(_cache);
    return desired;
}
Protected Overrides Function MeasureCore(ByVal availableSize As Size) As Size
    For Each child As UIElement In VisualChildren
        child.Measure(availableSize)
        ' call some method on child that adjusts child size if needed
        _cache.StoreInfoAboutChild(child)
    Next child
    Dim desired As Size = CalculateBasedOnCache(_cache)
    Return desired
End Function
  • 각 자식 요소를 호출 Measure 해야 합니다.

  • 일반적으로 구현은 동일한 요소의 MeasureCore 메서드 호출과 ArrangeCore 메서드 호출 간에 측정 정보를 캐시해야 합니다.

  • 기본 구현을 MeasureCore 호출할 필요는 없지만 기본 구현에서 원하는 레이아웃 기능을 제공하는 경우 적절할 수 있습니다.

  • Measure 자식 요소에 대한 호출은 부모 요소가 지원하는 레이아웃 유형에 따라 부모 또는 영역의 하위 집합과 동일하게 availableSize 전달되어야 합니다. 예를 들어 요소별 테두리 또는 안쪽 여백, 스크롤 막대 또는 사용자 지정 컨트롤의 영역을 제거하는 것이 유효합니다.

설명

보다에서 요소를 FrameworkElement UIElement파생 하는 것이 더 일반적입니다. 파생되는 FrameworkElement경우 on FrameworkElement 의 재정의 MeasureCore 가 메서드를 봉인합니다MeasureCore. 따라서 포함되지 FrameworkElement않은 상속을 통해 파생 UIElement 되는 경우 레이아웃 측정값 특성을 변경하는 수단으로만 재정 MeasureCore 의합니다. WPF 코어 수준에서 고유한 구현을 빌드하려는 경우일 수 있습니다. 그렇지 않으면 파생되는 FrameworkElement경우 Measure 동작에 대한 구현 템플릿은 .MeasureOverride의 구현입니다FrameworkElement.

자식 요소가 있는 부모 요소는 각 자식에 대해 호출 Measure 해야 합니다. 그렇지 않으면 이러한 자식 요소의 크기가 조정되거나 정렬되지 않으며 레이아웃에서 효과적으로 사라집니다.

상속자 참고

구현은 무한에 대해 availableSize 제공된 값을 처리할 수 있어야 합니다. 무한 값은 요청된 제약 조건이 없음을 나타내며 재귀 측정값 호출을 통해 부모 요소에 대한 측정 선택을 효과적으로 연기합니다.

구현에서는 제공된 availableSize 값을 소프트 제약 조건으로 간주할 수 있습니다. 자식 요소 애플리케이션 코드의 다른 측면 부모 요소의 현재 실제 크기를 확인할 수 있었습니다 하는 경우에 더 큰 크기를 지정할 수 있습니다. 큰 크기 요청은 자식 요소가 부모 요소가 콘텐츠 표시 영역 내에서 콘텐츠 스크롤을 지원할 수 있는지 여부를 쿼리하고 있음을 나타내는 규칙입니다.

적용 대상