Freigeben über


UIElement.DesiredSize Eigenschaft

Definition

Ruft die Größe ab, die dieses Element während des Messdurchgangs im Layoutprozess berechnet hat.

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

Eigenschaftswert

Die berechnete Größe, die die gewünschte Größe für den Anordnungsdurchgang wird.

Beispiele

Das folgende Beispiel zeigt DesiredSize als Teil einer MeasureOverride Implementierung. Beachten Sie, wie Measure unmittelbar vor dem Abrufen DesiredSizevon aufgerufen wird. Dadurch wird sichergestellt, dass DesiredSize einen legitimen Wert besitzt.

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

Hinweise

Der von dieser Eigenschaft zurückgegebene Wert ist nur dann ein gültiges Maß, wenn der Wert der IsMeasureValid -Eigenschaft ist true.

DesiredSize wird in der Regel als einer der Messfaktoren überprüft, wenn Sie Layoutverhaltensüberschreibungen wie ArrangeOverride, MeasureOverrideoder OnRender implementieren (in diesem OnRender Fall können Sie es stattdessen überprüfen RenderSize , aber dies hängt von Ihrer Implementierung ab). Je nach Szenario DesiredSize kann ihre Implementierungslogik vollständig berücksichtigt werden, Einschränkungen für DesiredSize können angewendet werden, und solche Einschränkungen können auch andere Merkmale des übergeordneten oder untergeordneten Elements ändern. Beispielsweise könnte ein Steuerelement, das scrollbare Regionen unterstützt (aber nicht von den Steuerelementen auf WPF-Frameworkebene ableiten soll, die bereits bildlauffähige Regionen aktivieren) die verfügbare Größe mit DesiredSizevergleichen. Das Steuerelement könnte dann einen internen Zustand festlegen, der Bildlaufleisten auf der Benutzeroberfläche für dieses Steuerelement aktiviert hat. DesiredSize Oder möglicherweise auch in bestimmten Szenarien ignoriert werden.

Gilt für:

Weitere Informationen