Cambiare TreeViewItem colpo di testa di innesco
-
21-08-2019 - |
Domanda
Avendo tale stile
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Header" Value="Pink"></Setter>
</Trigger>
</Style.Triggers>
</Style>
mi aspetterei il testo delle TreeViewItems espansi di essere "Pink", ma niente di impostato in realtà. Se cambio di proprietà = "background", invece, funziona. Come Intestazione è diverso da Sfondo
Soluzione
Credo che avrò bisogno di ulteriori informazioni per rispondere a questa in modo più completo. Tuttavia, se devo tirare a indovinare, direi che probabilmente stai impostando la proprietà Header sul TreeViewItem esplicitamente in questo modo:
<TreeView>
<TreeViewItem
Header="Blue"/>
</TreeView>
E, in questo caso, l'impostazione esplicitamente avrà la precedenza tutto ciò che si mette in grande stile.
Altri suggerimenti
Per approfondire la risposta di ascalonx:
blog di Josh Smith:
C'è un insieme ben definito di regole che viene utilizzato internamente da WPF a capire quale sia il valore reale di un DP è. Ecco una breve sintesi del regole di precedenza utilizzati quando risolvere il valore di un DP (da più alta alla più bassa priorità):
- sistema di proprietà coercizione
- animazioni attivi, o animazioni con un comportamento di attesa
- Valore locale
- template TemplatedParent
- trigger stile
- trigger modello
- setter stile
- Stile Tema
- Inheritance
- Il valore di default dalla dipendenza metadati proprietà
Quindi, se si imposta in modo esplicito la proprietà Header, (o se si associa lo credo), si dispone di questo problema.