UIElement.Arrange(Rect) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Umieszcza elementy podrzędne i określa rozmiar elementu UIElement. Elementy nadrzędne wywołają tę metodę z implementacji ArrangeCore(Rect) (lub odpowiednika na poziomie platformy WPF), aby utworzyć aktualizację układu cyklicznego. Ta metoda stanowi drugie przekazanie aktualizacji układu.
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
Ostateczny rozmiar obliczany przez element nadrzędny dla elementu podrzędnego Rect podany jako wystąpienie.
Uwagi
W przypadku scenariuszy pochodnych elementów na poziomie platformy WPF zachowanie Arrange nie powinno (i nie może, chyba że w tle) zostać zmienione. Zamiast tego należy zastąpić implementację ArrangeOverride w klasie. Implementacja ArrangeOverride jest wywoływana wewnętrznie w Arrange ramach domyślnych operacji układu na poziomie platformy WPF. Implementacja ArrangeCore powinna być również wywoływana ArrangeOverride dla każdego elementu podrzędnego, jeśli ma elementy podrzędne.
W przypadku scenariuszy wyprowadzania elementów na poziomie rdzenia WPF zachowanie Arrange nie powinno (i nie może, chyba że w tle) zostać zmienione. Zamiast tego należy zastąpić ArrangeCore klasę . Implementacja ArrangeCore jest wywoływana wewnętrznie w Arrange ramach domyślnych operacji układu na poziomie platformy WPF. Przyjęto jednak założenie, że używasz układu na poziomie struktury WPF i jego systemu układu, co często nie ma zastosowania, jeśli w szczególności wyprowadzasz elementy na poziomie rdzeniA WPF z klasy elementu podstawowego UIElement . Implementacja ArrangeCore powinna być również wywoływana Arrange dla każdego elementu podrzędnego, jeśli ma elementy podrzędne. Należy pamiętać, że scenariusz na poziomie rdzenia WPF oznacza, że nie używasz klasy pochodnej FrameworkElement , ponieważ FrameworkElement uszczelnia ArrangeCoreelement .
Obliczanie pozycjonowania układu na poziomie struktury WPF w Windows Presentation Foundation (WPF) składa się z Measure wywołania i wywołaniaArrange. Podczas wywołania Measure system układu określa wymagania dotyczące rozmiaru elementu przy użyciu podanego Size argumentu (availableSize
).
Arrange Podczas wywołania system układu finalizuje rozmiar i położenie pola ograniczenia elementu. Aby uzyskać więcej informacji, zobacz Układ.
availableSize
może być dowolną liczbą z zakresu od zera do nieskończoności. Elementy, które mają zostać określone, zwracają minimum Size wymagane przez availableSize
parametr .
Gdy układ jest najpierw tworzone, zawsze odbiera wywołanie Measure przed Arrange. Jednak po pierwszym przekazaniu układu może odbierać Arrange wywołanie bez Measure. Może się to zdarzyć, gdy właściwość, która ma wpływ tylko Arrange na zmianę (na przykład wyrównanie) lub gdy obiekt nadrzędny otrzyma obiekt Arrange bez Measure. Wywołanie Measure spowoduje automatyczne unieważnienie wywołania Arrange .
Aktualizacje układu są zwykle wykonywane asynchronicznie (w czasie określonym przez system układu). Element może nie od razu odzwierciedlać zmian właściwości, które mają wpływ na ustalanie rozmiaru elementów (na przykład Width).
Uwaga
Aktualizacje układu można wymusić przy użyciu UpdateLayout metody , jednak wywoływanie tej funkcji nie jest zalecane, ponieważ jest to zwykle niepotrzebne i może powodować niską wydajność. W wielu sytuacjach, w których wywołanie UpdateLayout może być odpowiednie, system układu prawdopodobnie będzie już przetwarzać aktualizacje. System układu może przetwarzać zmiany układu w sposób, który może zoptymalizować wszystkie niezbędne aktualizacje w ramach pakietu.
System układu przechowuje dwie oddzielne kolejki nieprawidłowych układów: jeden dla Measure i jeden dla Arrange. Kolejka układu jest sortowana na podstawie kolejności elementów w drzewie wizualnym. Elementy wyższe w drzewie znajdują się w górnej części kolejki, aby uniknąć nadmiarowych układów spowodowanych powtarzającymi się zmianami w elementach nadrzędnych. Zduplikowane wpisy są automatycznie usuwane z kolejki, a elementy są automatycznie usuwane z kolejki, jeśli są już prawidłowe.
Podczas aktualizowania układu kolejka Measure jest najpierw opróżniona, a następnie kolejka Arrange . Element w Arrange kolejce nigdy nie zostanie rozmieszony, jeśli istnieje element w kolejce Measure .