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.

Примеры

В следующем примере показано, 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или OnRenderOnRender случае можно также проверить 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.

Применяется к

Дополнительно