C# 缩放动画和XAML杂波

C# 缩放动画和XAML杂波,c#,wpf,xaml,animation,C#,Wpf,Xaml,Animation,我是WPF的新手,所以请原谅我的noob问题 我实现了一个老式的“点击按钮”动画,该动画与缩放变换一起工作: <Style TargetType="Image" x:Key="PressableImage"> <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/> <Style.Triggers> <EventTrigger Ro

我是WPF的新手,所以请原谅我的noob问题

我实现了一个老式的“点击按钮”动画,该动画与缩放变换一起工作:

    <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 x:Name="E00" Style="{StaticResource PressableImage}" Source="Resources/0.png" MouseDown="ClickMainMenu">
    <Image.RenderTransform>
        <ScaleTransform ScaleX="1" ScaleY="1" />
    </Image.RenderTransform>
</Image>

我想在样式定义中加入RenderTransform部分,就像我在RenderTransformMorigin中所做的那样,但我实现这一点的唯一方法是在每个图像定义中加入RenderTransform定义


有没有办法将其放入样式定义中?

在您的问题中,我认为通过样式设置值没有任何问题:

<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>


这不起作用,我在PresentationFramework.dll“Set property”System.Windows.FrameworkElement.Style“Set property”中遇到一个异常:“System.Windows.Markup.XamlParseException”引发了一个异常。“行号“145”和行位置“24”。@OrfQuarenghi-Hm对我来说很好。查看有关调试的网站
XamlParseException