我对WPF很新,所以原谅我的noob问题...
我实施了一个旧式"按钮点击"适用于Scale变换的动画:
<Style TargetType="Image" x:Key="PressableImage">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Style.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard >
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0.9" Duration="0:0:0.03" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0.9" To="1" BeginTime="0:0:0.03" Duration="0:0:0.1" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0.9" Duration="0:0:0.03" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0.9" To="1" BeginTime="0:0:0.03" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
为了使它适用于我的Image对象,我需要以这种方式声明它们:
<Image x:Name="E00" Style="{StaticResource PressableImage}" Source="Resources/0.png" MouseDown="ClickMainMenu">
<Image.RenderTransform>
<ScaleTransform ScaleX="1" ScaleY="1" />
</Image.RenderTransform>
</Image>
我想将RenderTransform部分放在样式定义中,就像我使用RenderTransformOrigin一样,但我管理它的唯一方法就是在每个Image定义中放置一个RenderTransform定义......
有没有办法把它放在风格定义中?
答案 0 :(得分:1)
在您的问题中,我没有看到通过样式设置值的任何问题:
<Style TargetType="Image" x:Key="PressableImage">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1" ScaleY="1" />
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard >
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0.9" Duration="0:0:0.03" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0.9" To="1" BeginTime="0:0:0.03" Duration="0:0:0.1" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0.9" Duration="0:0:0.03" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0.9" To="1" BeginTime="0:0:0.03" Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>