DesiredSize-Eigenschaft
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

UIElement.DesiredSize Property

Ruft die Größe ab, die von diesem UIElement während der Maßübergabe im Layoutvorgang berechnet wurde.

Syntax


public Size DesiredSize { get; }

Eigenschaftswert

Typ: Size

Die Größe, die von diesem UIElement während der Maßübergabe im Layoutvorgang berechnet wurde.

Hinweise

DesiredSize wird in der Regel als einer der Messfaktoren überprüft, wenn Sie die Überschreibung von Layoutverhalten wie ArrangeOverride oder MeasureOverride implementieren. Abhängig von der übergeordneten Layoutlogik des Containers würde DesiredSize möglicherweise vollständig eingehalten, Einschränkungen würden möglicherweise auf DesiredSize angewendet. Solche Einschränkungen könnten auch andere Eigenschaften entweder des übergeordneten Elements oder des untergeordneten Elements ändern. Ein Steuerelement, das bildlauffähige Bereiche unterstützt (jedoch keine Ableitungen von den Steuerelementen zulässt, die bereits bildlauffähige Bereiche darstellen) kann beispielsweise die verfügbare Größe mit DesiredSize vergleichen. Vom Steuerelement kann anschließend ein interner Zustand festgelegt werden, der Schiebeleisten auf der Benutzeroberfläche für das betreffende Steuerelement aktiviert. Oder DesiredSize könnte ignoriert werden und das Element immer einen festen Layoutslot erhalten, oder einen Slot, dessen Größe durch andere Faktoren bestimmt wird, beispielsweise durch Überprüfen der Werte angefügter Eigenschaften.

Die DesiredSize-Eigenschaft enthält nur einen nützlichen Wert, wenn mindestens ein "Measure"-Durchgang des Layouts auf dem Element ausgeführt wurde.

Die DesiredSize-Eigenschaft ist eigentlich nur zur Verwendung vorgesehen, wenn Sie eigene Layoutüberschreibungsmethoden definieren. Wenn Sie nur an der Größe eines UI-Elements der App zur Laufzeit interessiert sind, sollten Sie stattdessen die Eigenschaften ActualWidth und ActualHeight verwenden. Sie können die Größe auf diese Weise überprüfen, wenn ein Element durch dynamische Layouttechniken wie die Größenanpassung mit Sternvariable für Grid-Zellen beeinflusst wird. Verlassen Sie sich in Situationen, die mit Sicherheit nach dem Ausführen des Layouts auftreten, nur auf die ActualWidth- und ActualHeight-Werte: beispielsweise in Loaded-Ereignissen oder bei Auslösung durch Benutzeraktionen, die nur möglich sind, nachdem die UI anfänglich gerendert wurde.

Beispiele

In diesem Beispiel wird DesiredSize als Teil der untergeordneten Iteration für eine ArrangeOverride-Implementierung abgefragt.


// Second arrange all children and return final size of panel
protected override Size ArrangeOverride(Size finalSize)
{
    // Get the collection of children
    UIElementCollection mychildren = Children;

    // Get total number of children
    int count = mychildren.Count;

    // Arrange children
    // We're only allowing 9 children in this panel.  More children will get a 0x0 layout slot.
    int i;
    for (i = 0; i < 9; i++)
    {

        // Get (left, top) origin point for the element in the 3x3 block
        Point cellOrigin = GetOrigin(i, 3, new Size(100, 100));

        // Arrange child
        // Get desired height and width. This will not be larger than 100x100 as set in MeasureOverride.
        double dw = mychildren[i].DesiredSize.Width;
        double dh = mychildren[i].DesiredSize.Height;

        mychildren[i].Arrange(new Rect(cellOrigin.X, cellOrigin.Y, dw, dh));

    }

    // Give the remaining children a 0x0 layout slot
    for (i = 9; i < count; i++)
    {
        mychildren[i].Arrange(new Rect(0, 0, 0, 0));
    }


    // Return final size of the panel
    return new Size(300, 300);
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

UIElement
ArrangeOverride
MeasureOverride
Arrange
Measure

 

 

Anzeigen:
© 2017 Microsoft