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

È stato utile?

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à):

     
      
  1. sistema di proprietà coercizione
  2.   
  3. animazioni attivi, o animazioni   con un comportamento di attesa
  4.   
  5. Valore locale
  6.   
  7. template TemplatedParent
  8.   
  9. trigger stile
  10.   
  11. trigger modello
  12.   
  13. setter stile
  14.   
  15. Stile Tema
  16.   
  17. Inheritance
  18.   
  19. Il valore di default dalla dipendenza    metadati proprietà
  20.   

Quindi, se si imposta in modo esplicito la proprietà Header, (o se si associa lo credo), si dispone di questo problema.

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