XAML样式是否可以从具有setter“template”的样式继承,继承所有现有触发器并使用另一个触发器扩展它?
示例样式:
<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>
</Setter>
</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>
</Setter>
</Style>
使用此样式会覆盖以前的模板设置器。 所以我的问题是: 有没有办法不覆盖以前的模板设置器,只在新样式中添加触发器?
我希望你能帮助我。 如果缺少信息,请写下
问候 理查德
我尝试过:
基于
试图从控制模板中取出触发器
答案 0 :(得分:1)
触发器是ControlTemplate
的一部分,所以不,你不能只是添加它们而不覆盖模板(这是一个羞耻的IMO,但就是这样)。