WPF常用动画

Style:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">


    <!--ImageButton动画 ScaleX 缩放x轴比例  先从1 to 1.51.5 to 1-->
    <Storyboard x:Key="ImageButtonStoryboard"  >
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="{x:Null}">
            <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="1.5"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="{x:Null}">
            <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="1.5"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>


    <!--FlowDirection    获取或设置方向,元素在任何控制其布局的父元素中都按此方向流动。
    RenderTransformOrigin 变形中心点  范围0-1   0.5代表中心
    中间的 ScaleTransform 最重要,是缩放的意思,有这个才能缩放变形
    -->
    <Style  TargetType="{x:Type Image}" x:Key="ImageBigStyle">
        <Setter Property="FlowDirection" Value="LeftToRight"/>
        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
        <Setter Property="RenderTransform">
            <Setter.Value>
                <TransformGroup>
                    <ScaleTransform/>
                </TransformGroup>
            </Setter.Value>
        </Setter>
    </Style>



    <Storyboard x:Key="ImageButtonStoryboard1"  >
        <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" From="1" To="1.5" AutoReverse="True" Duration="0:0:0.1" Storyboard.TargetName="{x:Null}"/>
        <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" From="1" To="1.5" AutoReverse="True" Duration="0:0:0.1" Storyboard.TargetName="{x:Null}"/>
    </Storyboard>

    <Style TargetType="{x:Type Image}" x:Key="button1">

        <Setter Property="FlowDirection" Value="LeftToRight"/>
        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
        <Setter Property="RenderTransform">
            <Setter.Value>
                <TransformGroup>
                    <ScaleTransform/>
                </TransformGroup>
            </Setter.Value>
        </Setter>
        
        
        <Style.Triggers>
            <EventTrigger RoutedEvent="Image.MouseLeftButtonDown">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" From="1" To="1.5" AutoReverse="True" Duration="0:0:0.1" Storyboard.TargetName="{x:Null}"/>
                            <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" From="1" To="1.5" AutoReverse="True" Duration="0:0:0.1" Storyboard.TargetName="{x:Null}"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>

        </Style.Triggers>
    </Style>

</ResourceDictionary>

前端:

<Window x:Class="AnimationDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="1000" Width="1000">
    <Grid Background="Black">
        <Image x:Name="img1" Width="150" Height="150" Source="DefaultButton.png" HorizontalAlignment="Center" MouseLeftButtonDown="img1_MouseLeftButtonDown" VerticalAlignment="Center" Margin="10" Style="{DynamicResource ImageBigStyle}" />

        <Button Content="放大效果-后台" Height="23" HorizontalAlignment="Left" Name="button1" VerticalAlignment="Top" Width="126" Click="button1_Click" Margin="21,39,0,0" />

        <Button Content="平移-后台" Height="23" HorizontalAlignment="Left" Name="button2" VerticalAlignment="Top" Width="126" Click="button2_Click" Margin="175,39,0,0" />

        <Button Content="缩小透明度变低-后台" Height="23" HorizontalAlignment="Left" Name="button3" VerticalAlignment="Top" Width="126" Click="button3_Click" Margin="338,39,0,0" />

        <Button Content="拉伸-后台" Height="23" HorizontalAlignment="Left" Name="button4" VerticalAlignment="Top" Width="126" Click="button4_Click" Margin="486,39,0,0" />
        <Button Content="缓动动画,缩放-后台" Height="23" HorizontalAlignment="Left" Margin="21,90,0,0" Name="button5" VerticalAlignment="Top" Width="126" Click="button5_Click" />
        <Button Content="Canvas移动动画-后台" Height="23" HorizontalAlignment="Left" Margin="175,90,0,0" Name="button6" VerticalAlignment="Top" Width="126" Click="button6_Click" />
        <Canvas Height="231" HorizontalAlignment="Left" Margin="202,485,0,0" Name="canvas1" VerticalAlignment="Top" Width="436">
            <Image Height="150" Name="image1" Source="DefaultButton.png" Width="150" Canvas.Left="89" Canvas.Top="27" />
        </Canvas>
        <Button Content="透明度动画-后台" Height="23" HorizontalAlignment="Left" Margin="338,90,0,0" Name="button7" VerticalAlignment="Top" Width="126" Click="button7_Click" />
        <Button Content="放大效果-后台" Height="23" HorizontalAlignment="Left" Margin="486,90,0,0" Name="button8" VerticalAlignment="Top" Width="126" Click="button8_Click" />
        <Button Content="缓动动画,缩放-后台" Height="23" HorizontalAlignment="Left" Margin="21,148,0,0" Name="button9" VerticalAlignment="Top" Width="126" Click="button9_Click" />
        <Button Content="放大效果-前台" Height="23" HorizontalAlignment="Left" Margin="21,238,0,0" Name="button10" VerticalAlignment="Top" Width="126" Click="button10_Click"  />
        <Button Content="放大效果-前台" Height="23" HorizontalAlignment="Left" Margin="21,280,0,0" Name="button11" VerticalAlignment="Top" Width="126" Click="button11_Click" />

        <Image Height="150" Name="image2" Source="DefaultButton.png" Width="150" Canvas.Left="89" Canvas.Top="27" Margin="599,306,29,304"  Style="{DynamicResource ImageBigStyle}">

            <Image.Triggers>
                <EventTrigger RoutedEvent="Image.MouseLeftButtonDown">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" From="1" To="1.5" AutoReverse="True" Duration="0:0:0.1" Storyboard.TargetName="{x:Null}"/>
                                <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" From=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值