2009-03-20 5 views
0

solche Artändern TreeViewItem Kopf durch Trigger

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

Nachdem ich den Text der erweiterten TreeViewItems erwarten würde tatsächlich „Pink“, aber nichts eingestellt sein. Wenn ich stattdessen zu Property = "Background" wechsle, funktioniert es. Wie Header unterscheidet sich von Hintergrund?

Antwort

3

Ich denke, ich brauche mehr Informationen, um das vollständiger zu beantworten. Allerdings, wenn ich zu erraten haben, würde ich sagen, Sie sind wahrscheinlich die Header-Eigenschaft auf dem TreeViewItem explizit wie diese Einstellung:

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

Und in diesem Fall, das Setzen es wird ausdrücklich etwas überschreiben, die Sie setzen in der Style.

1

auf ascalonx Antwort Um dies näher auszuführen:

aus Josh Smith's Blog kopiert:

Es gibt einen gut definierten Satz von Regeln , die von WPF zu herauszufinden, was der reale Wert der intern verwendet wird, Ein DP ist. Hier ist eine kurze Zusammenfassung der Vorrangsregeln verwendet, wenn den Wert eines DP-Lösung (von höchsten zum niedrigsten Priorität):

  1. Property System Zwang
  2. Aktive Animationen oder Animationen mit einem Halte Verhalten
  3. Lokale Wert
  4. TemplatedParent Vorlage
  5. Stil löst
  6. Vorlage tri ggers
  7. Stil Setter
  8. Theme Stil
  9. Inheritance
  10. Standardwert aus der Abhängigkeit Eigenschaft Metadaten

Also, wenn Sie die Header-Eigenschaft explizit festgelegt, (oder wenn Sie binden es ich denke,), Sie haben dieses Problem.