Измените заголовок TreeViewItem с помощью триггера

StackOverflow https://stackoverflow.com/questions/667352

  •  21-08-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Чтобы подробнее остановиться на ответе аскалонкса:

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top