Applicare lo stile a tutti TreeViewItem
-
21-09-2019 - |
Domanda
Ciao Il problema sto avendo è che ho il controllo TreeView multipla e ogni TreeView ha i suoi stili TreeViewItem, impostazione
TreeView ItemContainerStyle = "{StaticResource Style1}"
imposterà solo l'elemento root non tutti gli elementi figlio, Come applicare uno stile a tutti gli elementi figlio in un TreeView
Soluzione
Ci sono diversi modi per ottenere questo risultato:
Si potrebbe rendere il vostro stile di default per tutti i TreeViewItems:
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
La differenza è che non si imposta l'attributo x: Key, ma non imposta l'attributo TargetType. Non è necessario impostare l'ItemContainerStyle sul TreeView in questo caso.
È anche possibile impostare il vostro stile come stile di default per tutti i TreeViewItems, ma solo all'interno della vostra TreeView:
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/>
</TreeView.Resources>
</TreeView>
In questo caso, inoltre, non è necessario impostare l'ItemContainerStyle sul TreeView.
Si potrebbe anche modificare il vostro stile come segue
<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}">
<Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/>
</Style>
In questo caso si sarebbe ancora necessario impostare l'ItemContainerStyle sul TreeView.