2009-09-02 7 views
6

Hallo Das Problem habe ist, dass ich mehrere TreeView-Steuerelement und jedes TreeView hat seine eigene TreeViewItem Stile haben, es EinstellungStil Auf alle anwenden TreeViewItem

TreeView ItemContainerStyle = "{Static Style1}"

wird nur das Wurzelelement gesetzt nicht alle untergeordneten Elemente, wie einen Stil für alle untergeordneten Elemente in einem TreeView

Antwort

18

anwenden Es gibt mehrere Möglichkeiten, dies zu erreichen:

Sie könnten Ihren Stil die Standardeinstellung für alle TreeViewItems machen:

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

Der Unterschied ist, dass Sie setzen nicht die x: Key-Attribut, aber Sie das Target Attribut gesetzt. Sie müssen den ItemContainerStyle in Ihrem TreeView in diesem Fall nicht festlegen.


Sie können auch Ihren Stil als Standard-Stil für alle TreeViewItems gesetzt, aber nur innerhalb Ihrer TreeView:

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

In diesem Fall, dass Sie nicht auch die ItemContainerStyle auf Ihrem TreeView einstellen müssen.


Sie können auch Ihren Stil ändern wie folgt

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

In diesem Fall, dass Sie immer noch die ItemContainerStyle auf Ihrem TreeView einstellen müssten.

+0

Ich denke, es lohnt sich, über DataTemplates zu erwähnen. Wer weiß, vielleicht möchte Chandimal den Inhalt von TreeViewItem ändern, nicht den Containerstil, aber merkt das nicht ... Nur ein Gedanke :). – Anvaka

+0

Danke !, Das ist, was ich gesucht habe !. Es geht darum, die Hintergrund-/Auswahlfarbe usw. zu ändern. – Chandimal