UIElement.ArrangeCore(Rect) Metoda

Definicja

Definiuje szablon dla definicji układu na poziomie WPF Core.Defines the template for WPF core-level arrange layout definition.

protected:
 virtual void ArrangeCore(System::Windows::Rect finalRect);
protected virtual void ArrangeCore (System.Windows.Rect finalRect);
abstract member ArrangeCore : System.Windows.Rect -> unit
override this.ArrangeCore : System.Windows.Rect -> unit
Protected Overridable Sub ArrangeCore (finalRect As Rect)

Parametry

finalRect
Rect

Ostatni obszar w elemencie nadrzędnym, który powinien być używany do rozmieszczenia siebie i jego elementów podrzędnych.The final area within the parent that element should use to arrange itself and its child elements.

Przykłady

ArrangeCore implementacje powinny wywoływać implementację podstawową w celu zwrócenia rozmiaru, następnie wywołać Arrange metodę każdego widocznego elementu podrzędnego i uzgodnić rozmiary zwrócone przez te Arrange wywołania z rozmiarem podstawowej implementacji.ArrangeCore implementations should call the base implementation to return a size, then call the Arrange method of each visible child element, and reconcile the sizes returned by these Arrange calls with the size of the base implementation. Logika dla aspektu uzgadniania ArrangeCore implementacji może się różnić w zależności od charakterystyki układu elementu.The logic for the reconciliation aspect of a ArrangeCore implementation might vary, depending on the layout characteristics of your element. W poniższym przykładzie szablon VisualChildren jest hipotetyczną właściwością, którą element może zdefiniować, aby pomóc w wyliczeniu jej zawartości; UIElement program nie definiuje kolekcji zawartości na tym poziomie, a architektura na poziomie platformy WPF zlicza zachowanie zawartości do elementów pochodnych, takich jak określone kontrolki lub klasy bazowe formantów.In the following example template, VisualChildren is a hypothetical property that your element might define to help enumerate its content; UIElement does not define content collections at this level, the WPF framework-level architecture defers content behavior to derived elements such as specific controls or control base classes.

protected override void ArrangeCore(Rect finalRect)
{
     //Call base, it will set offset and RenderBounds to the finalRect:
     base.ArrangeCore(finalRect);
     foreach (UIElement child in VisualChildren)
     {
         child.Arrange(new Rect(childX, childY, childWidth, childHeight));
     }
 }
Protected Overrides Sub ArrangeCore(ByVal finalRect As Rect)
     'Call base, it will set offset and RenderBounds to the finalRect:
     MyBase.ArrangeCore(finalRect)
     For Each child As UIElement In VisualChildren
         child.Arrange(New Rect(childX, childY, childWidth, childHeight))
     Next child
End Sub

Uwagi

Uwaga

Zastąpienie tej metody jest odpowiednie tylko w przypadku wyprowadzania na poziomie rdzenia WPF i nie jest używany system układu platformy WPF i FrameworkElement Klasa pochodna, ponieważ FrameworkElement zamknięcia ArrangeCore .Overriding this method is only appropriate if you are deriving at the WPF core-level, and you are not using the WPF framework-level layout system and FrameworkElement derived class, because FrameworkElement seals ArrangeCore. Jeśli używasz systemu układu platformy WPF Framework, odpowiednia metoda przesłonięcia dla zachowań układu dla konkretnych klas ma wartość ArrangeOverride .If you are using the WPF framework-level layout system, the appropriate method to override for class-specific layout arrange behavior is ArrangeOverride.

Uwagi dotyczące dziedziczenia

Jeśli tworzysz elementy na poziomie WPF Core, należy przesłonić tę metodę, aby nadać elementowi na poziomie WPF podstawowe zachowanie układu rozmieszczenia lub w celu podjęcia właściwych decyzji dotyczących układu dotyczących elementów podrzędnych elementów.If you are developing elements at the WPF core level,you should override this method to give your WPF core-level element a unique arrange layout behavior, or to make proper layout decisions about the child elements of your elements. Przesłonięcie może być konieczne, jeśli te elementy podrzędne nie są rozpoznawane ze zdefiniowanego wzorca, takiego jak ItemCollection .An override might be necessary if those child elements are not recognizable from a defined pattern such as an ItemCollection.

Element nadrzędny musi wywoływać konkretną klasę Arrange(Rect) dla każdego elementu podrzędnego, w przeciwnym razie te elementy podrzędne nie są renderowane.A parent element must call the class-specific Arrange(Rect) on each child element, otherwise those child elements are not rendered.

Dotyczy