我有一个能够通过动画淡出控件的样式:
<Style x:Key="ExpireFadeStyle">
<Style.Resources>
<!--Change this in a derived style if required-->
<sys:Double x:Key="FinalVal">0.25</sys:Double>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpired}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="ExpireAnimation">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="1" To="{StaticResource FinalVal}" Duration="0:0:3" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="ExpireAnimation" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
(
IsExpired
属性始终存在于样式应用的控件的DataContext
中。)当我直接在控件中使用这个样式时,一切都正常:
<StackPanel Style="{StaticResource ExpireFadeStyle}">
...etc
但是当我从这个样式中派生出来时,就像很简单的一样。
<Style x:Key="ExpireTextFadeStyle" BasedOn="{StaticResource ExpireFadeStyle}"/>
如果我先从控件中继承样式,然后以同样的方式在同一控件上使用派生的样式,它不起作用。(当然,意图是要对其进行一些更改,特别是FinalVal
,但首先必须在一个简单的情况下运行)。
继承的样式本身似乎是有效的:如果我添加一些Setter
到其中,我可以看到它的效果。只是Triggers
不会被继承或根本不起作用。如何解决?