Ich möchte die Menüpunkte in mehrere Spalten zeigen ..WPF Untermenü Itemspanel
I WrapPanels für Menüs
Code unten funktioniert gut für die erste Ebene verwenden möchten, aber wenn Untermenüs öffnen oder Unter Menüs von Untermenüs, es wird als normale Liste angezeigt.
Was kann getan werden, um das Standardverhalten zu überschreiben?
Hinweis: Ich verwende Itemssource
, um Menüelemente (Objekte meiner eigenen Klasse) zu binden, so kann ich verschachtelte Objektstile nicht geben.
<Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource {x:Type MenuItem}}">
....
<Setter Property="ItemsSource" Value="{Binding Children}"/>
....
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel MaxHeight="300" Orientation="Vertical"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
....
</Style>
Ich habe kein Problem mit zu den Kindern zu binden, Alle Ebenen haben gleiche Eigenschaft namens „Kinder“, Mein Problem ist nicht die Untermenüs verwenden WrapPanel gezeigt . Stattdessen verwenden sie Stack-Panel, um die Liste anzuzeigen. – VibeeshanRC
können Sie ItemsPanel für Untermenü auch wie aktualisierte Antwort setzen. – Nitin
So ist es, wenn ich 10 Level der Menüleiste habe, muss ich diese Hierarchie wiederholen. – VibeeshanRC