UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) Method

Definition

Aktualisiert die DesiredSize eines UIElement.Updates the DesiredSize of a UIElement. Übergeordnete Elemente rufen diese Methode aus ihren eigenen MeasureCore(Size)-Implementierungen auf, um eine rekursive Layoutaktualisierung auszuführen.Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. Das Aufrufen dieser Methode stellt die erste Übergabe (die "Maßübergabe") einer Layoutaktualisierung dar.Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

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 Size Size Size

Der verfügbare Speicherplatz, den ein übergeordnetes Element für ein untergeordnetes Element reservieren kann.The available space that a parent element can allocate a child element. 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.A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

Hinweise

Die Berechnung der layoutpositionierung in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) besteht aus einem Measure -und Arrange einem-Rückruf.Computation of layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. Während des Measure Aufrufes bestimmt ein Element seine Größenanforderungen mithilfe einer availableSize Eingabe.During the Measure call, an element determines its size requirements by using an availableSize input. Während des Arrange Aufrufes wird die Elementgröße abgeschlossen.During the Arrange call, the element size is finalized.

availableSizekann eine beliebige Zahl zwischen 0 (null) und unendlich sein.availableSize can be any number from zero to infinite. Elemente, die am Layout teilnehmen, Size sollten die Mindestanforderung für availableSizeeine bestimmte zurückgeben.Elements participating in layout should return the minimum Size they require for a given availableSize.

Wenn ein Layout zum ersten Mal instanziiert wird, empfängt es Measure immer einen Arrange-Rückruf.When a layout is first instantiated, it always receives a Measure call before Arrange. Nach dem ersten Layoutdurchlauf wird jedoch möglicherweise Arrange ein-Rückruf ohne einen Measureempfangen. Dies kann vorkommen, wenn eine Eigenschaft, die nur Arrange Auswirkungen hat, geändert wird (z. b. die Ausrichtung Arrange ) oder wenn das übergeordnete Element einen ohne Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. Durch Measure einen-Befehl wird ein Arrange -Befehl automatisch ungültig.A Measure call will automatically invalidate an Arrange call.

Layout-Aktualisierungen erfolgen asynchron, sodass der Haupt Thread nicht auf jede mögliche Layoutänderung wartet.Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. Das Abfragen eines Elements über die Code Behind-Überprüfung von Eigenschafts Werten kann nicht sofort Änderungen an Eigenschaften widerspiegeln, die mit der Größenanpassung Width oder den Layoutmerkmalen interagieren (z. b. die-Eigenschaft).Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

Hinweis

Layoutaktualisierungen können mithilfe der UpdateLayout -Methode erzwungen werden.Layout updates can be forced by using the UpdateLayout method. Das Aufrufen dieser Methode ist jedoch in der Regel unnötig und kann zu einer schlechten Leistung führen.However, calling this method is usually unnecessary and can cause poor performance.

Das Layoutsystem speichert zwei separate Warteschlangen mit ungültigen Layouts Measure , eine für Arrangeund eine für.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. Die layoutwarteschlange wird basierend auf der Reihenfolge der Elemente in der visuellen Struktur des Elements, das das Layout ausführt, sortiert. Elemente oberhalb der Struktur befinden sich am Anfang der Warteschlange, um redundante Layouts zu vermeiden, die durch wiederholte Änderungen der übergeordneten Elemente verursacht werden.The layout queue is sorted based upon the order of elements in the visual tree of the element performing layout; elements higher in the tree are at the top of the queue, to avoid redundant layouts caused by repeated changes in parents. Doppelte Einträge werden automatisch aus der Warteschlange entfernt, und Elemente werden automatisch aus der Warteschlange entfernt, wenn Sie bereits über das Layout überprüft wurden.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already layout-validated.

Beim Aktualisieren des Layouts wird Measure die Warteschlange zuerst geleert, gefolgt von Arrange der Warteschlange.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Ein Element in der Arrange Warteschlange wird nie angeordnet, wenn ein Element in der Measure Warteschlange vorhanden ist.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Gilt für: