UIElement.ArrangeCore(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.
Definiuje szablon definicji układu układu na poziomie rdzenia WPF.
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 obiekcie nadrzędnym, którego element powinien używać do rozmieszczania się i jego elementów podrzędnych.
Przykłady
ArrangeCore implementacje powinny wywołać implementację podstawową, aby zwrócić rozmiar, a następnie wywołać Arrange metodę każdego widocznego elementu podrzędnego i uzgodnić rozmiary zwracane przez te Arrange wywołania z rozmiarem implementacji podstawowej. Logika aspektu ArrangeCore uzgodnień implementacji może się różnić w zależności od właściwości układu elementu. W poniższym przykładowym szablonie VisualChildren
jest hipotetyczną właściwością, którą element może zdefiniować, aby pomóc w wyliczeniu jego zawartości; UIElement nie definiuje kolekcji zawartości na tym poziomie, architektury platformy WPF, które deferują zachowanie zawartości na podstawie elementów pochodnych, takich jak określone kontrolki lub klasy bazowe kontrolek.
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 używasz systemu układu na poziomie struktury WPF i FrameworkElement klasy pochodnej, ponieważ FrameworkElement uszczelnia ArrangeCore. Jeśli używasz systemu układów na poziomie platformy WPF, odpowiednią metodą zastąpienia zachowania układu specyficznego dla klasy jest ArrangeOverride.
Uwagi dotyczące dziedziczenia
Jeśli tworzysz elementy na poziomie rdzenia WPF, należy zastąpić tę metodę, aby nadać elementowi podstawowego poziomu WPF unikatowe zachowanie układu rozmieszczania lub podejmować odpowiednie decyzje dotyczące układów podrzędnych elementów. Zastąpienie może być konieczne, jeśli te elementy podrzędne nie są rozpoznawalne ze zdefiniowanego wzorca, takiego jak ItemCollection.
Element nadrzędny musi wywoływać klasę specyficzną Arrange(Rect) dla każdego elementu podrzędnego, w przeciwnym razie te elementy podrzędne nie są renderowane.