2009-03-20 4 views
0

Avoir un tel styleChangement TreeViewItem tête par déclencheur

<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 à Property = "Background" à la place, cela fonctionne. Comment En-tête diffère de Contexte?

Répondre

3

Je pense que je vais avoir besoin de plus d'informations pour y répondre 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, il sera explicitement la mise remplacer tout ce que vous mettez dans le style.

1

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

copié à partir Josh Smith's blog:

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

  1. système de propriété coercition
  2. animations actives, ou des animations avec maintien comportement
  3. valeur locale
  4. modèle TemplatedParent
  5. style déclenche
  6. modèle tri ggers
  7. poseurs de style
  8. Thème de style
  9. d'héritage
  10. Valeur par défaut à partir des métadonnées de propriété dépendance

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

Questions connexes