UIElement.DesiredSize 속성

정의

레이아웃 프로세스의 측정 단계 중 이 요소가 계산한 크기를 가져옵니다.Gets the size that this element computed during the measure pass of the layout process.

public:
 property System::Windows::Size DesiredSize { System::Windows::Size get(); };
public System.Windows.Size DesiredSize { get; }
member this.DesiredSize : System.Windows.Size
Public ReadOnly Property DesiredSize As Size

속성 값

정렬 단계에 필요한 크기인 계산된 크기입니다.The computed size, which becomes the desired size for the arrange pass.

예제

다음 예제에서는 MeasureOverride 구현의 일부로 DesiredSize를 보여 줍니다.The following example shows DesiredSize as part of a MeasureOverride implementation. DesiredSize를 가져오기 직전에 Measure를 호출 하는 방법을 확인 합니다.Notice how Measure is called immediately prior to obtaining DesiredSize. 이렇게 하면 DesiredSize에 합법적인 값이 포함 됩니다.This assures that DesiredSize holds a legitimate value.

virtual Size MeasureOverride(Size availableSize) override
{
    Size^ panelDesiredSize = gcnew Size();

    // In our example, we just have one child. 
    // Report that our panel requires just the size of its only child.
    for each (UIElement^ child in InternalChildren)
    {
        child->Measure(availableSize);
        panelDesiredSize = child->DesiredSize;
    }
    return *panelDesiredSize ;
}
protected override Size MeasureOverride(Size availableSize)
{
    Size panelDesiredSize = new Size();

    // In our example, we just have one child. 
    // Report that our panel requires just the size of its only child.
    foreach (UIElement child in InternalChildren)
    {
        child.Measure(availableSize);
        panelDesiredSize = child.DesiredSize;
    }

    return panelDesiredSize ;
}
Protected Overrides Function MeasureOverride(ByVal availableSize As System.Windows.Size) As System.Windows.Size
    Dim panelDesiredSize As Size = New Size()
    ' In our example, we just have one child. 
    ' Report that our panel requires just the size of its only child.
    For Each child As UIElement In InternalChildren
        child.Measure(availableSize)
        panelDesiredSize = child.DesiredSize
    Next
    Return panelDesiredSize
End Function

설명

이 속성에서 반환 되는 값은 IsMeasureValid 속성 값이 true되는 경우에만 유효한 측정값이 됩니다.The value returned by this property will only be a valid measurement if the value of the IsMeasureValid property is true.

DesiredSize은 일반적으로 ArrangeOverride, MeasureOverride또는 OnRender과 같은 레이아웃 동작 재정의를 구현할 때 측정 요소 중 하나로 확인 됩니다. OnRender 경우 대신 RenderSize을 확인할 수 있지만 구현에 따라 달라 집니다.DesiredSize is typically checked as one of the measurement factors when you implement layout behavior overrides such as ArrangeOverride, MeasureOverride, or OnRender (in the OnRender case, you might check RenderSize instead, but this depends on your implementation). 시나리오에 따라 구현 논리에 의해 완벽 하 게 적용 될 수 DesiredSize DesiredSize에 대 한 제약 조건이 적용 될 수 있으며, 이러한 제약 조건도 부모 요소나 자식 요소의 다른 특성을 변경할 수도 있습니다.Depending on the scenario, DesiredSize might be fully respected by your implementation logic, constraints on DesiredSize might be applied, and such constraints might also change other characteristics of either the parent element or child element. 예를 들어 스크롤할 수 있는 영역을 지원 하지만 이미 스크롤 가능한 영역을 사용 하도록 설정 하는 WPF 프레임 워크 수준 컨트롤에서 파생 되지 않도록 선택 하는 컨트롤은 사용 가능한 크기를 DesiredSize와 비교할 수 있습니다.For example, a control that supports scrollable regions (but chooses not to derive from the WPF framework-level controls that already enable scrollable regions) could compare available size to DesiredSize. 그런 다음 컨트롤은 해당 컨트롤에 대 한 UIUI 스크롤 막대를 사용 하는 내부 상태를 설정할 수 있습니다.The control could then set an internal state that enabled scrollbars in the UIUI for that control. 또는 특정 시나리오에서 DesiredSize 무시할 수도 있습니다.Or, DesiredSize could potentially also be ignored in certain scenarios.

적용 대상

추가 정보