Evosoul04 Ответов: 1

Можно ли расширить сеттер xaml?


Всем привет,

Возможно ли, чтобы стиль xaml наследовался от стиля с задающим "шаблоном", наследовал все существующие триггеры и расширил его с помощью другого триггера?

Пример Стиля:
<Style x:Key="BigButton" TargetType={x:Type RadioButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<ControLTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Opacity" Value="1"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Style>


Большинство моих кнопок имеют стиль с этими двумя триггерами.
Итак, теперь к моему вопросу.
Если у меня есть следующий новый стиль:

<Style x:Key="BigButton" TargetType={x:Type RadioButton}" based on="{StaticResource BigButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType={x:Type RadioButton}">
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="true">
<Setter Property="Background" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Style>


С помощью этого стиля он перезаписывает предыдущий шаблон Setter.
Поэтому мой вопрос таков:
Есть ли способ не перезаписывать предыдущий шаблон Setter и только добавить триггер в новом стиле?

Надеюсь, вы сможете мне помочь.
Если есть недостающая информация пожалуйста напишите ее

Приветствия
Ричард

Что я уже пробовал:

основанный на
Попытался вытащить триггеры из панели управления

1 Ответов

Рейтинг:
11

Irina Pykhova

Я думаю, что это невозможно. Вы можете попробовать ввести в стиль дополнительные триггеры.Триггеры и вообще не трогайте свойство шаблона. В вашем образце это должно сработать.
c# - стиль.Триггеры против ControlTemplate.Триггеры-Переполнение Стека[^]


Evosoul04

Да, пожалуй, ты прав. Я нашел только ответ, который говорит, что это невозможно.
Спасибо за ответ.