UIElement.DesiredSize Proprietà

Definizione

Ottiene le dimensioni calcolate da questo elemento durante il passaggio di misurazione del processo di 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

Valore della proprietà

Size

Dimensioni calcolate, che diventano le dimensioni desiderate per il passaggio di disposizione.

Esempio

Nell'esempio seguente viene illustrato DesiredSize come parte di un'implementazione MeasureOverride . Si noti come Measure viene chiamato immediatamente prima di ottenere DesiredSize. Ciò assicura che DesiredSize contenga un valore legittimo.

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

Commenti

Il valore restituito da questa proprietà sarà solo una misura valida se il valore della IsMeasureValid proprietà è true.

DesiredSize viene in genere controllato come uno dei fattori di misurazione quando si implementano gli overridi del comportamento di layout, ArrangeOverridead esempio , MeasureOverrideo OnRender (nel OnRender caso, è possibile controllare RenderSize , ma dipende dall'implementazione). A seconda dello scenario, DesiredSize potrebbe essere completamente rispettato dalla logica di implementazione, i vincoli da DesiredSize applicare e tali vincoli potrebbero anche modificare altre caratteristiche dell'elemento padre o dell'elemento figlio. Ad esempio, un controllo che supporta aree scorrevoli (ma sceglie di non derivare dai controlli a livello di framework WPF che già abilitano aree scorrevoli) potrebbe confrontare le dimensioni disponibili a DesiredSize. Il controllo potrebbe quindi impostare uno stato interno che ha abilitato le barre di scorrimento nell'interfaccia utente per tale controllo. In alternativa, DesiredSize potrebbe anche essere ignorato in determinati scenari.

Si applica a

Vedi anche