UIElement.MeasureCore(Size) UIElement.MeasureCore(Size) UIElement.MeasureCore(Size) UIElement.MeasureCore(Size) Method

정의

파생 클래스에서 재정의되는 경우 자식 요소 콘텐츠의 크기를 고려하여 이 요소의 크기를 적절하게 조정하기 위한 측정 논리를 제공합니다.When overridden in a derived class, provides measurement logic for sizing this element properly, with consideration of the size of any child element content.

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 Size Size

부모 요소가 자식 요소에 할당할 수 있는 크기입니다.The available size that the parent element can allocate for the child.

반환

레이아웃에서 이 요소에 필요한 크기입니다.The desired size of this element in layout.

예제

일반적인 재정의 MeasureCore 대략적인이 패턴을 따릅니다 (라는 기본 제공 컬렉션이 없는 VisualChildren; VisualChildren 요소를 유지 관리 하는 모든 자식 컬렉션을 나타내는 자리 표시자).A typical override of MeasureCore follows this approximate pattern (there is not a built-in collection called VisualChildren; VisualChildren is a placeholder that represents whatever child collection your element maintains).

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 각 자식 요소에 있습니다.You must call Measure on each child element.

  • 일반적으로 구현 간의 측정 정보를 캐시 해야 합니다 MeasureCoreArrangeCore 동일한 요소에서 메서드를 호출 합니다.Generally, your implementation should cache measurement information between the MeasureCore and ArrangeCore method calls in the same element.

  • 기본 구현 호출 MeasureCore 필수적 이지만 기본 구현에서 원하는 레이아웃 기능을 제공 하는 경우에 적합할 수 있습니다.Calling base implementations of MeasureCore is not required, but might be appropriate if the base implementation provides a desired layout capability.

  • 에 대 한 호출 Measure 자식 요소 거쳐야 같은 availableSize 부모 또는 영역의 하위 집합으로 레이아웃의 유형에 따라 부모 요소를 지원 합니다.Calls to Measure on child elements should pass either the same availableSize as the parent, or a subset of the area, depending on the type of layout the parent element supports. 예를 들어,는 요소별 테두리 안쪽 여백, 스크롤 막대 또는 사용자 지정 컨트롤에 대 한 영역을 제거할 수 있습니다.For example, it would be valid to remove the area for an element-specific border or padding, a scrollbar, or a custom control.

설명

요소를 파생 시키는 일반적인 것 FrameworkElement 대신 UIElement합니다.It is more common to derive an element from FrameworkElement rather than UIElement. 파생 하는 경우 FrameworkElement는 재정의 MeasureCoreFrameworkElement 봉인 된 MeasureCore 메서드.If you are deriving from FrameworkElement, note that an override of MeasureCore on FrameworkElement seals the MeasureCore method. 만 재정의 따라서 MeasureCore 에서 파생 하는 경우 레이아웃 측정 특성을 변경 하는 수단으로 UIElement 포함 하지 않는 상속을 통해 FrameworkElement합니다.Therefore, you only override MeasureCore as a means to alter layout measure characteristics if you derive from UIElement through an inheritance that does not include FrameworkElement. 이 경우가에서 고유한 구현을 작성 하려는 경우는 WPFWPF 핵심 수준입니다.This might be the case if you are attempting to build your own implementation on the WPFWPF core-level. 파생 하는 경우 그러지 FrameworkElement, 측정값 동작에 대 한 구현 템플릿은 다음 합니다 FrameworkElement 구현의.MeasureOverride합니다.Otherwise, if you are deriving from FrameworkElement, then the implementation template for Measure behavior is the FrameworkElement implementation of .MeasureOverride.

자식 요소를 사용 하 여 부모 요소를 호출 해야 Measure 각 자식 그렇지 않은 경우 이러한 자식 요소 하지의 크기와 정렬를 레이아웃에서 효과적으로 사라집니다.A parent element with child elements must call Measure on each child, otherwise these child elements are not sized or arranged and will effectively disappear from layout.

상속자 참고

구현에 대 한 제공 된 값을 처리할 수 있어야 availableSize 유한 아닙니다.Implementations must be able to process a value provided for availableSize that is infinite. 무한 한 값 제약 조건이 없는 요청 된 나타내며 효과적으로 측정 선택을 재귀 호출 하는 측정값을 통해 부모 요소를 지연 시킵니다.An infinite value indicates no requested constraints, and effectively defers measurement choice to the parent element, through recursive Measure calls.

구현에 대 한 제공 된 값을 고려할 수 availableSize soft 제약 조건 수입니다.Implementations can consider the value provided for availableSize to be a soft constraint. 자식 요소 애플리케이션 코드의 다른 측면 부모 요소의 현재 실제 크기를 확인할 수 있었습니다 하는 경우에 더 큰 크기를 지정할 수 있습니다.The child element might specify a larger size, even if other aspects of application code were able to determine the current actual size of the parent element. 큰 요청은는 자식 요소를 쿼리 하는 콘텐츠 표시 영역 내에서 콘텐츠 스크롤 부모 요소를 지원 하는지 여부를 나타내는 규칙입니다.The large size request is a convention that indicates that the child element is querying whether your parent element can support content scrolling within a content display region.

적용 대상