Изменить заголовок TreeViewItem по триггеру - PullRequest
0 голосов
/ 20 марта 2009

Имея такой стиль

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

Я ожидаю, что текст расширенных TreeViewItems будет "Розовым", но на самом деле ничего не установлено. Если я изменю на Property = "Background" вместо этого, это работает. Чем заголовок отличается от фона ?

Ответы [ 2 ]

3 голосов
/ 20 марта 2009

Я думаю, мне нужно больше информации, чтобы ответить на этот вопрос более полно. Однако, если я угадаю, я бы сказал, что вы, вероятно, устанавливаете свойство Header в TreeViewItem явно так:

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

И, в этом случае, его явная настройка переопределит все, что вы добавили в стиль.

1 голос
/ 20 марта 2009

Чтобы уточнить ответ Аскалонкса:

скопировано с блога Джоша Смита :

Существует четко определенный набор правил который используется внутри WPF для выяснить, какова реальная стоимость DP является. Вот краткое изложение правила приоритета, используемые при разрешение значения DP (из с наивысшего приоритета):

  1. Принуждение системы собственности
  2. Активные анимации или анимации с поведением Hold
  3. Местное значение
  4. Шаблон TemplatedParent
  5. Стиль триггеров
  6. Шаблон триггеров
  7. Установщики стиля
  8. Стиль темы
  9. Наследование
  10. Значение по умолчанию из зависимости метаданные свойства

Так что, если вы явно устанавливаете свойство Header (или, я думаю, вы связываете его), у вас есть эта проблема.

...