Gestaltete verschachtelte Elemente in WPF
Angenommen, Sie haben ein verschachteltes element-Struktur, zum Beispiel ein ContextMenu mit MenuItems:
<ContextMenu Style="{StaticResource FooMenuStyle}">
<MenuItem Style="{StaticResource FooMenuItemStyle}"/>
...
</ContextMenu>
Können Sie problemlos anwenden von Stilen oder Vorlagen, um das ContextMenu-oder MenuItem-Elemente. Aber wenn das MenuItem-Stil gehört zu den Menü-Stil ist es Recht umständlich und überflüssig", um es hinzuzufügen, um jedes MenuItem-element.
Gibt es eine Möglichkeit, diese automatisch auf die Kind-Elemente? Damit können Sie einfach schreiben:
<ContextMenu Style="{StaticResource FooMenuStyle}">
<MenuItem/>
...
</ContextMenu>
Es wäre nett, wenn FooMenuStyle könnte Stil mit MenuItem-Elemente, aber das scheint nicht möglich zu sein.
Edit: Die Menü-Beispiel ist wohl irreführend, da war ich mir nicht bewusst ItemContainerStyle und die Absicht war, für eine Allgemeine Lösung. Basierend auf den zwei Antworten, die ich haben kommen mit zwei Lösungen: eine Allgemeine Variante und eine für ItemContainerStyle und dergleichen:
<Style x:Key="FooMenuItem" TargetType="{x:Type MenuItem}">
...
</Style>
<Style x:Key="FooMenu" TargetType="{x:Type ContextMenu}">
<!-- Variant for specific style attribute -->
<Setter Property="ItemContainerStyle"
Value="{StaticResource FooMenuItem}"/>
<!-- General variant -->
<Style.Resources>
<Style TargetType="{x:Type MenuItem}"
BasedOn="{StaticResource FooMenuItem}"/>
</Style.Resources>
</Style>
<ContextMenu Style="{StaticResource FooMenu}">
<MenuItem/>
</ContextMenu>
InformationsquelleAutor der Frage gix | 2009-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stil wird angewendet, um alle MenuItem-Objekte innerhalb des ContextMenu.
InformationsquelleAutor der Antwort Josh G
Nur zur Vervollständigung der ursprünglichen Antwort, ich denke, es ist klarer hinzufügen von verschachtelten Format innerhalb der übergeordneten so:
InformationsquelleAutor der Antwort Juan Calero
InformationsquelleAutor der Antwort Kent Boogaart