缩放动画和XAML混乱

时间:2014-08-25 08:07:41

标签: c# wpf xaml animation

我对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定义......

有没有办法把它放在风格定义中?

1 个答案:

答案 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>
相关问题