Question

Avoir un tel style

<Style TargetType="TreeViewItem">
  <Style.Triggers>
    <Trigger Property="IsExpanded" Value="True">
      <Setter Property="Header" Value="Pink"></Setter>
    </Trigger>
  </Style.Triggers>
</Style>

J'attends le texte des TreeViewItems étendus pour être « rose », mais rien mis réellement. Si je change de propriété = « Arrière-plan » à la place, cela fonctionne. Comment En-tête diffère de Contexte

Était-ce utile?

La solution

Je pense que je vais avoir besoin de plus d'informations pour répondre à cette plus complètement. Cependant, si je dois deviner, je dirais que vous configurez probablement la propriété d'en-tête sur le TreeViewItem explicitement comme ceci:

<TreeView>
    <TreeViewItem
        Header="Blue"/>
</TreeView>

Et, dans ce cas, la mise en elle explicitement remplacer tout ce que vous mettez dans le style.

Autres conseils

Pour des précisions sur la réponse de ascalonx:

blog Josh Smith:

  

Il y a un ensemble bien défini de règles   qui est utilisé en interne par WPF   comprendre ce que la valeur réelle d'un DP   est. Voici un bref résumé de la   règles de préséance utilisées lorsque   la résolution de la valeur d'un DP (à partir de   priorité la plus basse à la plus élevée):

     
      
  1. la contrainte du système de propriété
  2.   
  3. animations actives, ou des animations   avec un comportement Hold
  4.   
  5. Valeur locale
  6.   
  7. template TemplatedParent
  8.   
  9. déclencheurs de style
  10.   
  11. déclencheurs de modèle
  12.   
  13. setters de style
  14.   
  15. style thème
  16.   
  17. L'héritage
  18.   
  19. Valeur par défaut de la dépendance    métadonnées de propriété
  20.   

Donc, si vous définissez explicitement la propriété d'en-tête, (ou si vous lient, je crois), vous avez ce problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top