2009-09-02 14 views
6

Hi Problem występuje jest, że mam wiele kontroli TreeView i każdego TreeView ma swoje własne style TreeViewItem, ustawienie goZastosuj styl do wszystkich TreeViewItem

TreeView ItemContainerStyle = "{StaticResource Styl1}"

ustawi tylko element główny nie wszystkie elementy potomne, Jak zastosować styl do wszystkich elementów podrzędnych w TreeView

Odpowiedz

18

Istnieje kilka sposobów, aby tego dokonać:

Można zrobić swój styl domyślny dla wszystkich TreeViewItems:

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

Różnica polega na tym, że nie należy ustawiać x: Key atrybut, ale trzeba ustawić atrybut TargetType. W takim przypadku nie trzeba ustawiać ItemContainerStyle na swoim TreeView.


Można także ustawić swój styl jako domyślny styl dla wszystkich TreeViewItems, ale tylko w obrębie swojej TreeView:

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

W tym przypadku również nie należy ustawić ItemContainerStyle na TreeView.


Można także zmienić swój styl następująco

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

W tym przypadku, że trzeba jeszcze ustawić ItemContainerStyle na TreeView.

+0

Myślę, że warto wspomnieć o DataTemplates. Kto wie, może Chandimal chce zmienić zawartość TreeViewItem, a nie styl kontenera, ale nie zdaje sobie z tego sprawy ... Tylko myśl :). – Anvaka

+0

Dzięki !, Tego właśnie szukałem !. Chodzi o zmianę koloru tła/selekcji itp. – Chandimal

Powiązane problemy