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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top