UIElement.DesiredSize Propriedade

Definição

Obtém o tamanho que este elemento calculou durante a passagem da medida 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 de Propriedade

O tamanho calculado, que se torna o tamanho desejado para a passagem de arranjo.

Exemplos

O exemplo seguinte é apresentado DesiredSize como parte de uma MeasureOverride implementação. Repare como Measure é chamado imediatamente antes de obter DesiredSize. Isto garante que DesiredSize tem 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

Observações

O valor devolvido por esta propriedade só será uma medida válida se o valor da IsMeasureValid propriedade for true.

DesiredSizeé tipicamente verificado como um dos fatores de medição quando implementas sobreposições de comportamento de layout como ArrangeOverride, , ou MeasureOverride (nesse OnRender caso, podes verificar OnRender em vez disso, mas isto depende da RenderSizetua implementação). Dependendo do cenário, DesiredSize pode ser totalmente respeitada pela lógica de implementação, podem aplicar-se restrições sobre DesiredSize e tais restrições podem também alterar outras características do elemento pai ou do elemento filho. Por exemplo, um controlo que suporta regiões deslocáveis (mas que opte por não derivar dos controlos ao nível do framework WPF que já permitem regiões deslocáveis) poderia comparar o tamanho disponível com DesiredSize. O controlo podia então definir um estado interno que permitisse barras de scroll na interface para esse controlo. Ou, DesiredSize pode também ser ignorado em certos cenários.

Aplica-se a

Ver também