Compartilhar via


UIElement.DesiredSize Propriedade

Definição

Obtém o tamanho que esse elemento calculou durante o passo de medição do processo de layout.

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

Valor da propriedade

Size

O tamanho calculado, que se torna o tamanho desejado para o passo de organização.

Exemplos

O exemplo a seguir é mostrado DesiredSize como parte de uma MeasureOverride implementação. Observe como Measure é chamado imediatamente antes de DesiredSizeobter . Isso garante que DesiredSize tenha um valor legítimo.

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

Comentários

O valor retornado por essa propriedade será apenas uma medida válida se o valor da IsMeasureValid propriedade for true.

DesiredSize normalmente é verificado como um dos fatores de medida quando você implementa substituições de comportamento de layout, como ArrangeOverride, MeasureOverrideou OnRender (no OnRender caso, você pode verificar RenderSize em vez disso, mas isso depende de sua implementação). Dependendo do cenário, DesiredSize pode ser totalmente respeitado pela lógica de implementação, as restrições podem ser aplicadas DesiredSize e essas restrições também podem alterar outras características do elemento pai ou do elemento filho. Por exemplo, um controle que dá suporte a regiões roláveis (mas opta por não derivar dos controles de nível de estrutura do WPF que já habilitam regiões roláveis) pode comparar o tamanho disponível com DesiredSize. Em seguida, o controle pode definir um estado interno que habilitou barras de rolagem na interface do usuário para esse controle. Ou, potencialmente, DesiredSize também pode ser ignorado em determinados cenários.

Aplica-se a

Confira também