Ich möchte eine benutzerdefinierte StackPanel
mit einer ReverseOrder
Eigenschaft erstellen, die ich deklarativ auf true setzen kann, damit die Elemente im StackPanel in der umgekehrten Reihenfolge der normalen erscheinen (zB von unten nach oben oder von rechts nach links) ). Es muss im laufenden Betrieb reversibel sein.
Ich denke daran, eine neue Klasse aus StackPanel abzuleiten, aber ich muss wissen, welche Methoden überschrieben werden müssen.
Endgültige Lösung:
%Vor% Definieren und registrieren Sie auch ReverseOrder
und rufen Sie UpdateLayout
auf, wenn es sich ändert.
MeasureOverride und ArrangeOverride
Tatsächlich kann Ihre Measelogik dieselbe wie StackPanel sein, sodass Sie ArrangeOverride einfach überschreiben können. Beachten Sie, dass StackPanel eine gewisse Logik für das Scrollen bietet, die Sie möglicherweise duplizieren müssen, wenn Sie es selbst schreiben. Möglicherweise möchten Sie direkt von Panel erben und nicht versuchen, das Scrollen zu unterstützen.
Siehe Benutzerdefinierte Panel-Elemente in der MSDN-Seite für Panels oder verschiedene Blog-Einträge auf Schreiben von benutzerdefinierten Feldern wie WPF-Tutorial - Erstellen eines benutzerdefinierten Panel-Steuerelements oder Benutzerdefinierte Felder in WPF erstellen
Hier ist eine andere Variante. Es basiert auf StackPanel
s Referenzquelle und ist auch in der Lage, mit Item-Alignments umzugehen.
Tags und Links wpf .net c# stackpanel