UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) Method

Definition

Positioniert untergeordnete Elemente und bestimmt die Größe für ein UIElement.Positions child elements and determines a size for a UIElement. Übergeordnete Elemente rufen diese Methode aus ihrer ArrangeCore(Rect)-Implementierung (oder einer Entsprechung auf WPF-Frameworkebene) auf, um eine rekursive Layoutaktualisierung auszuführen.Parent elements call this method from their ArrangeCore(Rect) implementation (or a WPF framework-level equivalent) to form a recursive layout update. Diese Methode stellt die zweite Übergabe einer Layoutaktualisierung dar.This method constitutes the second pass of a layout update.

public:
 void Arrange(System::Windows::Rect finalRect);
public void Arrange (System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)

Parameter

finalRect
Rect Rect Rect Rect

Die endgültige Größe, die das übergeordnete Element für das untergeordnete Element berechnet, als eine Rect-Instanz.The final size that the parent computes for the child element, provided as a Rect instance.

Hinweise

Für WPF-Frameworkebene-Element ableiten Szenarien Verhalten für Arrange sollte nicht (und nicht möglich ist, es sei denn, Sie Schattenkopien) geändert werden.For WPF framework-level element deriving scenarios, behavior for Arrange should not (and cannot, unless you shadow) be changed. Sie sollten stattdessen überschreiben die ArrangeOverride Implementierung in Ihrer Klasse.Instead, you should override the ArrangeOverride implementation in your class. Ihre ArrangeOverride -Implementierung aufgerufen wird intern von Arrange als Teil des standardmäßigen WPF-Frameworkebene Layoutvorgänge.Your ArrangeOverride implementation is called internally by Arrange as part of default WPF framework-level layout operations. Ihre ArrangeCore Implementierung sollten auch aufrufen ArrangeOverride für jedes untergeordnete Element, wenn es untergeordnete Elemente verfügt.Your ArrangeCore implementation should also call ArrangeOverride on each child element, if it has child elements.

Für WPF-Kernebenen-Element Ableiten von Szenarien, die das Verhalten für Arrange sollte nicht (und nicht möglich ist, es sei denn, Sie Schattenkopien) geändert werden.For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. Sie sollten stattdessen überschreiben ArrangeCore in Ihrer Klasse.Instead, you should override ArrangeCore in your class. Ihre ArrangeCore -Implementierung aufgerufen wird intern von Arrange als Teil des standardmäßigen WPF-Frameworkebene Layoutvorgänge.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. Aber dies wird vorausgesetzt, dass Sie WPF-Frameworkebene-Layout und die Layoutsystem, die häufig nicht der Fall ist, wenn Sie Elemente auf WPF-Kernebenen von speziell ableiten, werden die UIElement Element-Basisklasse.However, this assumes you are using WPF framework-level layout and its layout system, which is often not the case if you are specifically deriving elements at the WPF core-level from the UIElement base element class. Ihre ArrangeCore Implementierung sollten auch aufrufen Arrange für jedes untergeordnete Element, wenn es untergeordnete Elemente verfügt.Your ArrangeCore implementation should also call Arrange on each child element, if it has child elements. Beachten Sie, dass das WPF-Kernebenen-Szenario bedeutet, dass Sie nicht verwenden eine FrameworkElement -Klasse abgeleitet, da FrameworkElement Siegel ArrangeCore.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

Berechnung der WPF-Frameworkebene layoutpositionierung Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) besteht aus einem Measure aufrufen und ein Arrange aufrufen.Computation of WPF framework-level layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) consists of a Measure call and an Arrange call. Während der Measure Aufruf des Layoutsystems bestimmt eines Elements größenanforderungen mithilfe eines bereitgestellten Size (availableSize) Argument.During the Measure call, the layout system determines an element's size requirements using a provided Size (availableSize) argument. Während der Arrange Aufruf des Layoutsystems schließt ab, die Größe und Position eines Elements des umgebenden Felds.During the Arrange call, the layout system finalizes the size and position of an element's bounding box. Weitere Informationen finden Sie unter Layout.For more information, see Layout.

availableSize eine beliebige Zahl von 0 (null), unendlich kann sein.availableSize can be any number from zero to infinity. Elemente angeordnet werden, gibt das Minimum zurück Size sie erfordern, über die availableSize Parameter.Elements to be laid out return the minimum Size they require through the availableSize parameter.

Wenn ein Layout zuerst instanziiert wird, erhält es immer eine Measure aufrufen, bevor Arrange.When a layout is first instantiated, it always receives a Measure call before Arrange. Jedoch nach der ersten Layoutübergabe, erhält sie möglicherweise eine Arrange aufrufen, ohne eine Measure; Dies kann auftreten, wenn eine Eigenschaft, die wirkt sich nur auf Arrange (z. B. Ausrichtung) geändert wird oder wenn das übergeordnete Element empfängt eine Arrange ohne eine 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. Ein Measure aufrufen wird automatisch für ungültig erklärt ein Arrange aufrufen.A Measure call will automatically invalidate an Arrange call.

Layoutupdates erfolgen in der Regel asynchron (zu einem Zeitpunkt, der durch das Layoutsystem bestimmt wird).Layout updates generally occur asynchronously (at a time determined by the layout system). Ein Element möglicherweise nicht sofort Änderungen an Eigenschaften, die Elementgröße betreffen widerspiegeln (z. B. Width).An element might not immediately reflect changes to properties that affect element sizing (such as Width).

Hinweis

Layout-Updates können erzwungen werden, mithilfe der UpdateLayout Methode, das Aufrufen dieser Funktion wird jedoch nicht empfohlen, ist normalerweise nicht erforderlich und kann zu Leistungseinbußen führen.Layout updates can be forced by using the UpdateLayout method; however, calling this function is not recommended, as it is usually unnecessary and can cause poor performance. In vielen Situationen bei Aufrufen UpdateLayout kann sinnvoll sein, wird das Layoutsystem wahrscheinlich bereits Updates verarbeitet werden.In many situations where calling UpdateLayout might be appropriate, the layout system will probably already be processing updates. Das Layoutsystem kann es sich um layoutänderungen in einer Weise verarbeiten, die alle erforderlichen Updates als Teil eines Pakets optimieren können.The layout system can process layout changes in a manner that can optimize all necessary updates as part of a package.

Das Layoutsystem verfolgt zwei separate Warteschlangen mit ungültigen Layouts, eine für Measure und eine für Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. Die Layoutwarteschlange wird basierend auf die Reihenfolge der Elemente in der visuellen Struktur sortiert.The layout queue is sorted based upon the order of elements in the visual tree. Elemente weiter oben in der Struktur sind am Anfang der Warteschlange, um redundante Layouts verursacht durch wiederholte Änderungen an übergeordneten Elementen zu vermeiden.Elements higher in the tree are at the top of the queue, in order 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 gültig sind.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already valid.

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

Gilt für: