Pergunta

Tendo tais Estilo

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

Eu esperaria o texto das TreeViewItems expandidos para ser "Pink", mas nada definido na verdade. Se eu mudar para a propriedade = "fundo" em vez disso, ele funciona. Como Header difere de Fundo ?

Foi útil?

Solução

Eu acho que vou precisar de mais informações para responder a esta de forma mais completa. No entanto, se eu tenho que adivinhar, diria que provavelmente você está definindo a propriedade de cabeçalho no TreeViewItem explicitamente como esta:

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

E, neste caso, defini-lo explicitamente irá substituir qualquer coisa que você colocar no estilo.

Outras dicas

Para elaborar a resposta de ascalonx:

blogue de Josh Smith:

Há um conjunto definido pelo bem de regras que é usado internamente para pelo WPF descobrir qual é o valor real de um DP é. Aqui está um resumo breve do regras de precedência usado quando resolver o valor de um DP (a partir de maior para a menor prioridade):

  1. Sistema de Propriedade coerção
  2. animações ativo ou animações com um comportamento Espera
  3. valor local
  4. TemplatedParent template
  5. gatilhos Estilo
  6. Template gatilhos
  7. Estilo setters
  8. estilo tema
  9. Inheritance
  10. O valor padrão da dependência propriedade de metadados

Então, se você definir explicitamente a propriedade de cabeçalho, (ou se você ligá-la eu acho), você tem esse problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top