UIElement.Arrange(Rect) Metoda

Definicja

Położenie elementów podrzędnych i Określanie rozmiaru UIElement.Positions child elements and determines a size for a UIElement. Elementy nadrzędne wywołują tę metodę z ich implementacji ArrangeCore(Rect) (lub równoważnego poziomu platformy WPF) w celu utworzenia cyklicznej aktualizacji układu.Parent elements call this method from their ArrangeCore(Rect) implementation (or a WPF framework-level equivalent) to form a recursive layout update. Ta metoda stanowi drugi przebieg aktualizacji układu.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)

Parametry

finalRect
Rect

Końcowy rozmiar, który jest obliczany przez element podrzędny jako wystąpienie Rect.The final size that the parent computes for the child element, provided as a Rect instance.

Uwagi

W przypadku scenariuszy opartych na elemencie WPF Framework, zachowanie dla Arrange nie powinno (i nie może, o ile nie zostanie zasłonięty).For WPF framework-level element deriving scenarios, behavior for Arrange should not (and cannot, unless you shadow) be changed. Zamiast tego należy zastąpić implementację ArrangeOverride w klasie.Instead, you should override the ArrangeOverride implementation in your class. Implementacja ArrangeOverride jest wywoływana wewnętrznie przez Arrange jako część domyślnych operacji układu na poziomie platformy WPF.Your ArrangeOverride implementation is called internally by Arrange as part of default WPF framework-level layout operations. Implementacja ArrangeCore powinna również wywołać ArrangeOverride dla każdego elementu podrzędnego, jeśli ma elementy podrzędne.Your ArrangeCore implementation should also call ArrangeOverride on each child element, if it has child elements.

W przypadku elementów opartych na poziomie WPF Core, zachowanie dla Arrange nie powinno (i nie może, o ile nie zostanie zacieniowany).For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. Zamiast tego należy przesłonić ArrangeCore w klasie.Instead, you should override ArrangeCore in your class. Implementacja ArrangeCore jest wywoływana wewnętrznie przez Arrange jako część domyślnych operacji układu na poziomie platformy WPF.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. Jednak założono, że korzystasz z układu platformy WPF Framework i jego systemu układu, który często nie jest w przypadku wyprowadzania elementów na poziomie rdzenia WPF z klasy UIElement elementu podstawowego.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. Implementacja ArrangeCore powinna również wywołać Arrange dla każdego elementu podrzędnego, jeśli ma elementy podrzędne.Your ArrangeCore implementation should also call Arrange on each child element, if it has child elements. Należy zauważyć, że scenariusz na poziomie rdzenia WPF oznacza, że nie używasz klasy pochodnej FrameworkElement, ponieważ FrameworkElement zamknięcia ArrangeCore.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

Obliczenie położenia układu na poziomie platformy WPF w Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) składa się z Measure wywołania i wywołania Arrange.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 trakcie wywołania Measure system układu określa wymagania dotyczące rozmiaru elementu przy użyciu dostarczonego argumentu Size (availableSize).During the Measure call, the layout system determines an element's size requirements using a provided Size (availableSize) argument. Podczas wywołania Arrange system układu kończy rozmiar i położenie pola ograniczenia elementu.During the Arrange call, the layout system finalizes the size and position of an element's bounding box. Aby uzyskać więcej informacji, zobacz Układ.For more information, see Layout.

availableSize może być dowolną liczbą z przestawu od zera do nieskończoności.availableSize can be any number from zero to infinity. Elementy, które mają zostać ustanowione, zwracają minimalny Size, które wymagają za pomocą parametru availableSize.Elements to be laid out return the minimum Size they require through the availableSize parameter.

Po pierwszym utworzeniu wystąpienia układu zawsze otrzymuje Measure wywołanie przed Arrange.When a layout is first instantiated, it always receives a Measure call before Arrange. Jednak po pierwszym przebiegu układu może wystąpić wywołanie Arrange bez Measure; może się tak zdarzyć, gdy właściwość, która ma wpływ tylko na Arrange, zostanie zmieniona (na przykład wyrównanie) lub gdy obiekt nadrzędny odbiera Arrange bez 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. Wywołanie Measure automatycznie unieważnia wywołanie Arrange.A Measure call will automatically invalidate an Arrange call.

Aktualizacje układów zwykle odbywają się asynchronicznie (w czasie określonym przez system układu).Layout updates generally occur asynchronously (at a time determined by the layout system). Element może nie odzwierciedlać zmian właściwości, które wpływają na rozmiar elementu (na przykład Width).An element might not immediately reflect changes to properties that affect element sizing (such as Width).

Uwaga

Aktualizacje układu mogą być wymuszane za pomocą metody UpdateLayoutej; nie zaleca się jednak wywoływania tej funkcji, ponieważ jest ona zwykle niepotrzebna i może spowodować niską wydajność.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. W wielu sytuacjach, gdy wywoływanie UpdateLayout może być odpowiednie, system układu prawdopodobnie będzie już przetwarzał aktualizacje.In many situations where calling UpdateLayout might be appropriate, the layout system will probably already be processing updates. System układu może przetwarzać zmiany układu w sposób, który może zoptymalizować wszystkie niezbędne aktualizacje w ramach pakietu.The layout system can process layout changes in a manner that can optimize all necessary updates as part of a package.

System układu przechowuje dwie osobne kolejki nieprawidłowych układów, jeden dla Measure i jeden dla Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. Kolejka układu jest sortowana na podstawie kolejności elementów w drzewie wizualnym.The layout queue is sorted based upon the order of elements in the visual tree. Elementy znajdujące się wyżej w drzewie znajdują się w górnej części kolejki, aby uniknąć nadmiarowych układów spowodowanych przez powtórzone zmiany elementów nadrzędnych.Elements higher in the tree are at the top of the queue, in order to avoid redundant layouts caused by repeated changes in parents. Zduplikowane wpisy są automatycznie usuwane z kolejki, a elementy są automatycznie usuwane z kolejki, jeśli są już prawidłowe.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already valid.

Podczas aktualizowania układu Kolejka Measure jest opróżniana jako pierwsza, a następnie Kolejka Arrange.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Element w kolejce Arrange nigdy nie będzie układany, jeśli w kolejce Measure znajduje się element.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Dotyczy