我的应用程序中的按钮出现问题。 我正在使用矢量图形来渲染每个按钮,当单击时,我希望按钮能够执行简单的捏动动画以显示click事件的反馈。我有一个Button样式,它有一些关联的样式触发器,如果我将这个样式设置为按钮,则一切正常。 问题是许多按钮本身都有不同的样式,我想对所有按钮使用触发器。
我已尝试使用BasedOn属性,但我没有将其视为StaticResources和动态资源,我收到以下错误。 动态资源不能基于类型样式。
触发器的代码是
<Style x:Key="BtnTriggerOnClick" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="1" To="0.8" RepeatBehavior="Forever" AutoReverse="True" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleX" />
<DoubleAnimation From="1" To="0.8" RepeatBehavior="Forever" AutoReverse="True" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleY" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="1" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleX" />
<DoubleAnimation To="1" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleY" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform CenterX="120" CenterY="30" ScaleX="1" ScaleY="1" />
</Setter.Value>
</Setter>
</Style>
我想提出的其中一个按钮是
<Style x:Key="ClearButtonStyle" TargetType="Button" >
<Setter Property="Foreground" Value="#B4B4B4" />
<Setter Property="BorderBrush" Value="#333333" />
<Setter Property="BorderThickness" Value="2" />
<Setter Property="Margin" Value="10,2" />
<Setter Property="FontSize" Value="20" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#333333" Offset="1" />
<GradientStop Color="#777777" Offset="0" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>