UIElement.Measure(Size) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Aktualisiert die DesiredSize eines UIElement. Übergeordnete Elemente rufen diese Methode aus ihren eigenen MeasureCore(Size)-Implementierungen auf, um eine rekursive Layoutaktualisierung auszuführen. Das Aufrufen dieser Methode stellt die erste Übergabe (die "Maßübergabe") einer Layoutaktualisierung dar.
public:
void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)
Parameter
- availableSize
- Size
Der verfügbare Speicherplatz, den ein übergeordnetes Element für ein untergeordnetes Element reservieren kann. Ein untergeordnetes Element kann mehr Speicherplatz erfordern, als verfügbar ist. Die angegebene Größe kann zugewiesen werden, wenn für das aktuelle Element im Inhaltsmodell Bildlaufvorgänge möglich sind.
Hinweise
Die Berechnung der Layoutpositionierung in Windows Presentation Foundation (WPF) besteht aus einem Anruf und einem Measure Arrange Anruf. Während des Measure Aufrufs bestimmt ein Element seine Größenanforderungen mithilfe einer availableSize
Eingabe. Während des Aufrufs Arrange wird die Elementgröße abgeschlossen.
availableSize
kann eine beliebige Zahl von null bis unendlich sein. Elemente, die an einem Layout teilnehmen, sollten das Minimum Size zurückgeben, das sie für eine bestimmte Zeit availableSize
benötigen.
Wenn ein Layout zuerst instanziiert wird, empfängt es immer einen Measure Anruf vor Arrange. Nach dem ersten Layoutdurchlauf kann es jedoch einen Arrange Anruf ohne einen MeasureAufruf empfangen. Dies kann passieren, wenn eine Eigenschaft, die sich nur Arrange auf die Änderung auswirkt (z. B. Ausrichtung), oder wenn das übergeordnete Element eine Arrange ohne eine Measure. Ein Measure Anruf wird automatisch ungültig Arrange .
Layoutupdates erfolgen asynchron, sodass der Hauptthread nicht auf jede mögliche Layoutänderung wartet. Das Abfragen eines Elements über die CodeBehind-Überprüfung von Eigenschaftswerten spiegelt möglicherweise nicht sofort Änderungen an Eigenschaften wider, die mit den Größen- oder Layouteigenschaften interagieren (z. B. die Width Eigenschaft).
Hinweis
Layoutupdates können mithilfe der UpdateLayout Methode erzwungen werden. Das Aufrufen dieser Methode ist jedoch in der Regel unnötig und kann zu einer schlechten Leistung führen.
Das Layoutsystem hält zwei separate Warteschlangen von ungültigen Layouts, eine für Measure und eine für Arrange. Die Layoutwarteschlange wird basierend auf der Reihenfolge der Elemente in der visuellen Struktur des Layouts des Elements sortiert; Elemente, die in der Struktur höher sind, befinden sich oben in der Warteschlange, um redundante Layouts zu vermeiden, die durch wiederholte Änderungen in übergeordneten Elementen verursacht werden. Doppelte Einträge werden automatisch aus der Warteschlange entfernt, und Elemente werden automatisch aus der Warteschlange entfernt, wenn sie bereits layoutgeschützt sind.
Beim Aktualisieren des Layouts wird die Measure Warteschlange zuerst geleert, gefolgt von der Arrange Warteschlange. Ein Element in der Warteschlange wird nie angeordnet, wenn ein Element in der Arrange Measure Warteschlange vorhanden ist.