Appliquer le style à tous TreeViewItem
-
21-09-2019 - |
Question
Salut Le problème ai est que j'ai plusieurs contrôle TreeView et chaque TreeView a ses propres styles TreeViewItem, le mettre
TreeView ItemContainerStyle = "{StaticResource Style1}"
ne fera que mettre l'élément racine pas tous les éléments de l'enfant, comment appliquer un style à tous les éléments de l'enfant dans un TreeView
La solution
Il y a plusieurs façons d'y parvenir:
Vous pouvez faire votre style par défaut pour tous TreeViewItems:
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
La différence est que vous ne définissez pas l'attribut x: Key, mais vous ne définissez l'attribut TargetType. Vous n'avez pas besoin de régler la ItemContainerStyle sur votre TreeView dans ce cas.
Vous pouvez également définir votre style comme style par défaut pour tous les TreeViewItems, mais seulement dans votre TreeView:
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/>
</TreeView.Resources>
</TreeView>
Dans ce cas, vous pouvez aussi ne pas besoin de définir la ItemContainerStyle sur votre TreeView.
Vous pouvez également modifier votre style comme suit
<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}">
<Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/>
</Style>
Dans ce cas, vous auriez encore à régler la ItemContainerStyle sur votre TreeView.