Aplicar estilo a todo o TreeViewItem
-
21-09-2019 - |
Pergunta
Oi, o problema que estou tendo é que eu tenho controle múltiplo e cada visualização de árvores tem seus próprios estilos de TreeViewItem, configurando -o
TreeView ItemContainersTyle = "{StaticResource Style1}"
Definirá apenas o elemento raiz, não todos os elementos filhos, como aplicar um estilo a todos os elementos infantis em uma visão de árvore
Solução
Existem várias maneiras de conseguir isso:
Você pode tornar seu estilo o padrão para todos os TreeViewItems:
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
A diferença é que você não define o atributo x: chave, mas define o atributo TargetType. Você não precisa definir o itemContainersTyle no seu TreeView neste caso.
Você também pode definir seu estilo como o estilo padrão para todos os TreeViewItems, mas apenas dentro do seu TreeView:
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/>
</TreeView.Resources>
</TreeView>
Nesse caso, você também não precisa definir o itemContainersTyle no seu TreeView.
Você também pode alterar seu estilo da seguinte maneira
<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}">
<Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/>
</Style>
Nesse caso, você ainda precisaria definir o itemContainersTyle no seu TreeView.