Поделиться через


UIElement.DesiredSize Свойство

Определение

Возвращает размер, вычисленный этим элементом на этапе измерения процесса компоновки.

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

Значение свойства

Вычисленный размер, который становится предпочтительным размером на этапе упорядочения.

Примеры

В следующем примере показана DesiredSize часть MeasureOverride реализации. Обратите внимание, как Measure вызывается непосредственно перед получением DesiredSize. Это гарантирует, что DesiredSize имеет законную ценность.

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

Комментарии

Значение, возвращаемое этим свойством, будет допустимым измерением, только если свойство имеет trueзначение IsMeasureValid .

DesiredSize обычно проверяется как один из факторов измерения при реализации переопределений поведения макета, таких как ArrangeOverride, MeasureOverrideили OnRenderOnRender случае можно проверить RenderSize , но это зависит от реализации). В зависимости от сценария, DesiredSize может полностью соблюдаться логикой реализации, могут применяться ограничения для DesiredSize , и такие ограничения также могут изменять другие характеристики родительского или дочернего элемента. Например, элемент управления, поддерживающий прокручиваемые области (но не наследующий от элементов управления уровня платформы WPF, которые уже поддерживают прокручиваемые области), может сравнить доступный размер с DesiredSize. Затем элемент управления может задать внутреннее состояние, включающее полосы прокрутки в пользовательском интерфейсе для этого элемента управления. Или может DesiredSize также игнорироваться в некоторых сценариях.

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

См. также раздел