面朝大海 春暖花开

天行健,君子以自强不息; 地势坤,君子以厚德载物; 宠辱不惊,闲看庭前花开花落; 去留无意,漫随天外云卷云舒。 不妄取,不妄予,不妄想,不妄求, 与人方便,随遇而安。 ——《周易》

导航

十三、“自己”的动画——按钮

单一动画

第一步:在XAML文件中

(1)需要动画的控件加上 

<Button Content="Button" HorizontalAlignment="Left" Margin="681,128,0,0" VerticalAlignment="Top" Width="166" Height="87" x:Name="btn" Click="btn_Click">

//动画可以有变换可投射
            <Button.RenderTransform>
                <ScaleTransform x:Name="st" ></ScaleTransform>
            </Button.RenderTransform>
              </Button>

(2)加Resources

<Page.Resources>
        <Storyboard x:Name="sb">

//动画有好多种,可任意选择合适的。此处用的是DoubleAnimation。
            <DoubleAnimation Storyboard.TargetName="st"          //给哪个控件加动画
                              Storyboard.TargetProperty="ScaleX"         //给控件的哪个属性加动画
                             From="0" To="3"></DoubleAnimation>     //属性值的变化
        </Storyboard>
    </Page.Resources>

第二步:在.cs文件中

在点击事件处添加代码: sb.Begin();

复合动画

第一步:在XAML文件中

(1)需要动画的控件加上 

<Button Content="Button" HorizontalAlignment="Left" Margin="681,128,0,0" VerticalAlignment="Top" Width="166" Height="87" x:Name="btn" Click="btn_Click">

//动画可以有变换可投射

            <Button.RenderTransform>

                <ScaleTransform x:Name="st" ></ScaleTransform>

            </Button.RenderTransform>

           <Button.Projection>
                <PlaneProjection x:Name="pp"></PlaneProjection>
            </Button.Projection>

              </Button>

(2)加Resources

<Page.Resources>

        <Storyboard x:Name="sb">

//动画有好多种,可任意选择合适的。此处用的是DoubleAnimation。

            <DoubleAnimation Storyboard.TargetName="st"          //给哪个控件加动画

                                      Storyboard.TargetProperty="ScaleX"         //给控件的哪个属性加动画

                                        From="0" To="3"></DoubleAnimation>     //属性值的变化

        </Storyboard>

        <Storyboard x:Name="sb1">

            <DoubleAnimation   Storyboard.TargetName="pp"

                                   Storyboard.TargetProperty="RotationY"  

                                  From="0" To="180">

            </DoubleAnimation>

        </Storyboard>

    </Page.Resources>

也可放在一个Storyboard标签下,即

  <Page.Resources>
        <Storyboard x:Name="sb">
            <DoubleAnimation Storyboard.TargetName="st"
                              Storyboard.TargetProperty="ScaleX"
                             From="0" To="3" RepeatBehavior="2x">
               
            </DoubleAnimation>
            <DoubleAnimation   Storyboard.TargetName="pp"
                                   Storyboard.TargetProperty="RotationY"
                                   From="0" To="180" Duration="00:00:07">
            </DoubleAnimation>
        </Storyboard>
    </Page.Resources>

第二步:在.cs文件中

在点击事件处添加代码: sb.Begin();

                                sb1.Begin();

说明:(1)如果有两个或多个动画,那么这些动画是一起播放、同时进行的,没有先后顺序。

          (2)设置动画的播放时间,默认是1秒。在DoubleAnimation  标签下加上属性Duration即可。例如用7秒完成   : Duration="00:00:07"

         (3)自动播放,即将动画播放一边之后,再反向播放一边,回到原来的状态。默认是将动画播放一边后结束。在DoubleAnimation  标签下加上AutoReverse=“true”即可。

        (4)动画重复播放的次数,默认是播放一次的。在DoubleAnimation  标签下加上属性RepeatBehavior即可,如果想重复三次,则设置为3x。

         (5) 动画按照次序播放,默认是同时播放的。在DoubleAnimation  标签下加上属性Completed即可。如果播放完此动画,播放动画sb1。首先给DoubleAnimation加事件处理程序Completed。然后,在这个方法中加上 sb1.Begin();即可。

        (5)除了DoubleAnimation  之外,还有很多其他的动画效果,这些动画都从TimeLine类继承而来,都有属性Duration、AutoReverse、RepeatBehavior、Completed事件(播放完成)、 BeginTime(延迟播放,不是立即播放)。

posted on 2012-12-07 09:45  gentle_girl  阅读(158)  评论(0编辑  收藏  举报