2009-09-02 12 views
6

Hola El problema estoy teniendo es que no tengo control TreeView múltiple y cada TreeView tiene sus propios estilos TreeViewItem, configurarloAplicar estilo a todos TreeViewItem

TreeView ItemContainerStyle = "{StaticResource Style1}"

sólo se configurará el elemento raíz no todos los elementos secundarios, Cómo aplicar un estilo a todos los elementos secundarios en un TreeView

Respuesta

18

Hay varias maneras de lograr esto:

usted podría hacer su estilo por defecto para todos los TreeViewItems:

<Style TargetType="{x:Type TreeViewItem}"> 
... 
</Style> 

La diferencia es que no se establece el atributo x: Key, pero usted establece el atributo TargetType. No es necesario que configure ItemContainerStyle en su TreeView en este caso.


También podría establecer su estilo como el estilo por defecto para todos los TreeViewItems, pero sólo dentro de su TreeView:

<TreeView> 
    <TreeView.Resources> 
     <Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/> 
    </TreeView.Resources> 
</TreeView> 

En este caso también no es necesario ajustar la ItemContainerStyle en su TreeView.


También podría alterar su estilo de la siguiente manera

<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}"> 
    <Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/> 
</Style> 

En este caso, todavía habría que fijar la ItemContainerStyle en su TreeView.

+0

Creo que vale la pena mencionar acerca de DataTemplates. Quién sabe, quizás Chandimal quiera cambiar el contenido de TreeViewItem, no el estilo contenedor, pero no se da cuenta de esto ... Solo un pensamiento :). – Anvaka

+0

¡Gracias! ¡Esto es lo que estaba buscando !. Se trata de cambiar el color de fondo/selección, etc. – Chandimal

Cuestiones relacionadas