FrameworkElement.MeasureOverride(Size) 메서드

정의

파생 클래스에서 재정의된 경우 자식 요소에 필요한 레이아웃의 크기를 측정하고 FrameworkElement 파생 클래스의 크기를 결정합니다.When overridden in a derived class, measures the size in layout required for child elements and determines a size for the FrameworkElement-derived class.

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

매개 변수

availableSize
Size

이 요소가 자식 요소에 제공할 수 있는 사용 가능한 크기입니다.The available size that this element can give to child elements. 값으로 무한대를 지정하면 사용할 수 있는 콘텐츠에 따라 요소 크기가 지정됩니다.Infinity can be specified as a value to indicate that the element will size to whatever content is available.

반환

이 요소에서 자식 요소 크기 계산에 따라 레이아웃 중에 필요하다고 결정하는 크기입니다.The size that this element determines it needs during layout, based on its calculations of child element sizes.

설명

WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) 레이아웃 시스템에 참여 하는 요소에 대 한 사용자 지정 레이아웃 크기 조정 동작을 구현 하려면 MeasureOverride를 재정의 합니다.Override MeasureOverride to implement custom layout sizing behavior for your element as it participates in the WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) layout system. 구현에서는 다음을 수행 해야 합니다.Your implementation should do the following:

  1. 레이아웃의 일부인 요소의 특정 자식 컬렉션을 반복 하 고 각 자식 요소에 대해 Measure를 호출 합니다.Iterate your element's particular collection of children that are part of layout, call Measure on each child element.

  2. 자식에 즉시 DesiredSize를 가져옵니다 .이는 Measure가 호출 된 후 속성으로 설정 됩니다.Immediately get DesiredSize on the child (this is set as a property after Measure is called).

  3. 자식 요소의 측정을 기반으로 부모의 원하는 부모 크기를 계산 합니다.Compute the net desired size of the parent based upon the measurement of the child elements.

MeasureOverride의 반환 값은 요소의 원하는 크기 여야 하며,이는 현재 요소의 부모 요소에 대 한 측정값 입력이 됩니다.The return value of MeasureOverride should be the element's own desired size, which then becomes the measure input for the parent element of the current element. 이 동일한 프로세스는 페이지의 루트 요소에 도달할 때까지 레이아웃 시스템을 계속 진행 합니다.This same process continues through the layout system until the root element of the page is reached.

이 프로세스가 진행 되는 동안 자식 요소가 초기 availableSize 보다 큰 DesiredSize 크기를 반환 하 여 자식 요소에 더 많은 공간이 필요한 것을 나타낼 수 있습니다.During this process, child elements might return a larger DesiredSize size than the initial availableSize to indicate that the child element wants more space. 이는 부모 컨트롤의 크기를 조정 하거나, 누적 된 순서를 설정 하거나, 콘텐츠를 측정 하거나 정렬 하는 데 사용할 수 있는 다양 한 솔루션을 설정 하 여, 스크롤 가능한 영역을 도입 하 여 고유한 구현에서 처리 될 수 있습니다.This might be handled in your own implementation by introducing a scrollable region, by resizing the parent control, by establishing some manner of stacked order, or any number of solutions for measuring or arranging content.

중요

요소는이 프로세스 중에 각 자식에 대 한 Measure를 호출 해야 합니다. 그렇지 않으면 자식 요소의 크기가 올바르게 조정 되거나 정렬 되지 않습니다.Elements should call Measure on each child during this process, otherwise the child elements will not be correctly sized or arranged.

상속자 참고

다음 비 컴파일 코드는이 구현 패턴을 보여 줍니다.The following non-compiling code shows this implementation pattern. Visualchildren 은 고유한 요소가 정의 해야 하는 자식의 열거 가능 컬렉션 속성을 나타냅니다.VisualChildren represents an enumerable collection property of children that your own element should define. 속성은 임의의 이름으로 지정할 수 있습니다.The property can be named anything. Visualchildren 은이 예제의 용도에 대 한 자리 표시자 이름입니다. visualchildrenWPFWPF에서 제공 하는 API 나 명명 패턴의 일부가 아닙니다.VisualChildren is a placeholder name for purposes of this example, VisualChildren is not an API as provided by WPFWPF or a part of a naming pattern.

[! code-csharpCorepseudocode # FEMeasureOverride] [! code-vbCorepseudocode # FEMeasureOverride][!code-csharpCorePseudocode#FEMeasureOverride] [!code-vbCorePseudocode#FEMeasureOverride]

적용 대상