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

속성 값

Size

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

예제

다음 예제에서는를 DesiredSize 구현 하는 과정을 보여 줍니다 MeasureOverride .The following example shows DesiredSize as part of a MeasureOverride implementation. 를 가져오기 직전에를 호출 하는 방법을 확인 Measure DesiredSize 합니다.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. 그런 다음 컨트롤은 해당 컨트롤에 대 한 UI에서 스크롤 막대를 사용 하는 내부 상태를 설정할 수 있습니다.The control could then set an internal state that enabled scrollbars in the UI for that control. 또는 DesiredSize 특정 시나리오에서 무시 될 수도 있습니다.Or, DesiredSize could potentially also be ignored in certain scenarios.

적용 대상

추가 정보