На самом деле это не так. Система DependencyProperty работает с учетом многочисленных различных источников стоимости. И как вы можете видеть здесь , установщики стилей и триггеры стилей считаются отдельными источниками. (Они пронумерованы 8 и 6 соответственно в разделе «Список приоритетов настройки свойств зависимостей».) Какой из источников активных значений имеет наивысший приоритет.
Источники свойств одного вида не могут удалить значение, предоставленное другим источником. Единственная причина, по которой триггеры могут изменить значение по сравнению с тем, что устанавливает его, состоит в том, что триггеры имеют более высокий приоритет. Нет возможности уничтожить значение, предоставляемое источником с более низким приоритетом.
Способ достижения конкретной цели, которую вы здесь выразили, состоит в том, чтобы инвертировать смысл триггера - не определяйте установщик стиля и активируйте триггер только тогда, когда IsMouseOver
имеет значение false Конечно, это не поможет вам во всех возможных случаях, когда вы можете захотеть это сделать. Но поскольку общего решения не существует, я думаю, что вам нужно решать каждую конкретную проблему по-своему.