UIElement.ArrangeCore(Rect) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje šablonu pro definici rozložení uspořádání na úrovni jádra 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
Poslední oblast v rámci nadřazeného prvku by měl použít k uspořádání sebe a jeho podřízených elementů.
Příklady
ArrangeCore Implementace by měly volat základní implementaci vrátit velikost, pak volat Arrange metodu každého viditelného podřízeného prvku a sladit velikosti vrácené těmito Arrange voláními s velikostí základní implementace. Logika aspektu ArrangeCore odsouhlasení implementace se může lišit v závislosti na charakteristikách rozložení vašeho prvku. V následujícím příkladu šablony je hypotetická vlastnost, VisualChildren
kterou váš prvek může definovat, aby pomohl vypsat jeho obsah; UIElement nedefinuje kolekce obsahu na této úrovni, architektura na úrovni architektury WPF odklánějí chování obsahu k odvozeným prvkům, jako jsou konkrétní ovládací prvky nebo základní třídy ovládacích prvků.
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
Poznámky
Poznámka
Přepsání této metody je vhodné pouze v případě, že odvozujete na úrovni jádra WPF a nepoužíváte systém rozložení na úrovni architektury WPF a FrameworkElement odvozenou třídu, protože FrameworkElement zapečetí ArrangeCore. Pokud používáte systém rozložení na úrovni architektury WPF, je ArrangeOverridevhodnou metodou přepsání chování uspořádání rozložení specifického pro třídu .
Poznámky pro dědice
Pokud vyvíjíte elementy na úrovni jádra WPF, měli byste tuto metodu přepsat, aby prvek wpf na úrovni jádra měl jedinečné chování uspořádání rozložení nebo aby se správně rozhodovalo o podřízených prvcích elementů. Přepsání může být nutné, pokud tyto podřízené prvky nejsou rozpoznatelné z definovaného ItemCollectionvzoru, jako je .
Nadřazený prvek musí volat třídu-specifické Arrange(Rect) pro každý podřízený prvek, jinak tyto podřízené elementy nejsou vykresleny.