稳扎稳打Silverlight(11) - 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation

稳扎稳打Silverlight(11) - 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation,第1张

概述[索引页] [源码下载] 稳扎稳打Silverlight(11) - 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation, 内插关键帧动画 作者: webabcd 介绍 Silverlight 2.0 动画:     ColorAnimation - 在两个 Color 值之间做线性内插动画处理     DoubleAnimation - 在 [索引页]
[源码下载]


稳扎稳打Silverlight(11) - 2.0动画之colorAnimation,DoubleAnimation,PointAnimation,内插关键帧动画

作者: webabcd


介绍
Silverlight 2.0 动画:
    colorAnimation - 在两个 color 值之间做线性内插动画处理
    DoubleAnimation - 在两个 Double 值之间做线性内插动画处理
    PointAnimation - 在两个 Point 值之间做线性内插动画处理
    内插关键帧动画 - 在 color 或 Double 或 Point 动画中内插关键帧,以做线性, 离散,三次贝塞尔曲线的动画处理
    动态改变动画 - 通过程序控制,动态地改变动画


在线DEMO
http://www.voidcn.com/article/p-ounmxjds-tq.html  


示例
1、colorAnimation.xaml <UserControl x:Class="Silverlight20.Animation.colorAnimation"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <StackPanel HorizontalAlignment="left">

                <Ellipse x:name="ellipse" Fill="Red" WIDth="200" Height="100">
                        <Ellipse.Triggers>
                        
                                <!--
                                RoutedEvent - 所属对象的路由事件,仅有Loaded这个事件
                                -->
                                <EventTrigger RoutedEvent="Ellipse.Loaded">
                                        <BeginStoryboard x:name="beginStoryboard">
                                                <Storyboard x:name="storyboard">
                                                
                                                        <!--colorAnimation - 在两个 color 值之间做线性内插动画处理-->
                                                        <!--
                                                        Storyboard.Targetname - 要进行动画处理的对象的名称
                                                        Storyboard.TargetProperty - 要进行动画处理的对象的属性
                                                        BeginTime - 时间线在被触发 BeginTime 的时间后才能开始播放
                                                                TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数](可为正;可为负;可为空;默认值为 0)
                                                        From - 动画的起始值
                                                        To - 动画的结束值
                                                        By - 动画从起始值开始计算,所需变化的总量(To 优先于 By)
                                                        Duration - 时间线的持续时间
                                                                TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
                                                                automatic - 自动确定
                                                                Forever - 无限长
                                                        autoReverse - 动画完成后是否要原路返回。默认值为 false
                                                        RepeatBehavior - 动画重复播放的时间、次数或类型
                                                                TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
                                                                nx - 播放次数。1x,2x,3x    
                                                                Forever - 永久播放
                                                        Speedratio - 时间线的速率的倍数。默认值 1
                                                        FillBehavior - 动画结束后的行为 [System.windows.Media.Animation.FillBehavior枚举]
                                                                FillBehavior.HoldEnd - 动画结束后,保留动画属性的结束值。默认值
                                                                FillBehavior.Stop - 动画结束后,恢复动画属性为其初始值
                                                        -->
                                                        <colorAnimation    
                                                                Storyboard.Targetname="ellipse"    
                                                                Storyboard.TargetProperty="(Ellipse.Fill).(SolIDcolorBrush.color)"    
                                                                BeginTime="00:00:0"    
                                                                From="Red"    
                                                                To="Yellow"    
                                                                Duration="automatic"    
                                                                autoReverse="True"    
                                                                RepeatBehavior="3x">
                                                        </colorAnimation>
                                                </Storyboard>
                                        </BeginStoryboard>
                                </EventTrigger>
                        </Ellipse.Triggers>
                </Ellipse>

        </StackPanel>
</UserControl>     2、DoubleAnimation.xaml
<UserControl x:Class="Silverlight20.Animation.DoubleAnimation"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <StackPanel HorizontalAlignment="left">
        
                <Rectangle x:name="rectangle" WIDth="200" Height="100" stroke="Black" strokeThickness="6" RadiusX="25" RadiusY="25">
                        <Rectangle.Fill>
                                <ImageBrush ImageSource="/Silverlight20;component/Images/logo.jpg" Stretch="Fill" />
                        </Rectangle.Fill>
                </Rectangle>
                
                <StackPanel.Resources>
                        <BeginStoryboard x:name="beginStoryboard">
                                <Storyboard x:name="storyboard">

                                        <!--DoubleAnimation - 在两个 Double 值之间做线性内插动画处理-->
                                        <!--
                                        Storyboard.Targetname - 要进行动画处理的对象的名称
                                        Storyboard.TargetProperty - 要进行动画处理的对象的属性
                                        BeginTime - 时间线在被触发 BeginTime 的时间后才能开始播放
                                                TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数](可为正;可为负;可为空;默认值为 0)
                                        From - 动画的起始值
                                        To - 动画的结束值
                                        By - 动画从起始值开始计算,所需变化的总量(To 优先于 By)
                                        Duration - 时间线的持续时间
                                                TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
                                                automatic - 自动确定
                                                Forever - 无限长
                                        autoReverse - 动画完成后是否要原路返回。默认值为 false
                                        RepeatBehavior - 动画重复播放的时间、次数或类型
                                                TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
                                                nx - 播放次数。1x,3x    
                                                Forever - 永久播放
                                        Speedratio - 时间线的速率的倍数。默认值 1
                                        FillBehavior - 动画结束后的行为 [System.windows.Media.Animation.FillBehavior枚举]
                                                FillBehavior.HoldEnd - 动画结束后,保留动画属性的结束值。默认值
                                                FillBehavior.Stop - 动画结束后,恢复动画属性为其初始值
                                        -->
                                        <DoubleAnimation    
                                                Storyboard.Targetname="rectangle"    
                                                Storyboard.TargetProperty="WIDth"
                                                From="100"
                                                By="100"
                                                BeginTime="0:0:3"
                                                Duration="00:00:03"
                                                autoReverse="False"
                                                RepeatBehavior="Forever">
                                        </DoubleAnimation>
                                </Storyboard>
                        </BeginStoryboard>
                </StackPanel.Resources>
                
        </StackPanel>
</UserControl>     3、PointAnimation.xaml
<UserControl x:Class="Silverlight20.Animation.PointAnimation"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <StackPanel HorizontalAlignment="left">
        
                <StackPanel OrIEntation="Horizontal">

                        <button Click="Animation_Begin" WIDth="65" Height="30" margin="2" Content="Begin" />

                        <button Click="Animation_Pause" WIDth="65" Height="30" margin="2" Content="Pause" />

                        <button Click="Animation_Resume" WIDth="65" Height="30" margin="2" Content="Resume" />

                        <button Click="Animation_Stop" WIDth="65" Height="30" margin="2" Content="Stop" />
                        
                </StackPanel>
        
                <Path Fill="Red">
                        <Path.Data>
                                <EllipseGeometry x:name="ellipseGeometry" Center="50,50" RadiusX="15" RadiusY="15" />
                        </Path.Data>
                </Path>
                
                <StackPanel.Resources>
                        <Storyboard x:name="storyboard">

                                <!--PointAnimation - 在两个 Point 值之间做线性内插动画处理-->
                                <!--
                                Storyboard.Targetname - 要进行动画处理的对象的名称
                                Storyboard.TargetProperty - 要进行动画处理的对象的属性
                                BeginTime - 时间线在被触发 BeginTime 的时间后才能开始播放
                                        TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数](可为正;可为负;可为空;默认值为 0)
                                From - 动画的起始值
                                To - 动画的结束值
                                By - 动画从起始值开始计算,所需变化的总量(To 优先于 By)
                                Duration - 时间线的持续时间
                                        TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
                                        automatic - 自动确定
                                        Forever - 无限长
                                autoReverse - 动画完成后是否要原路返回。默认值为 false
                                RepeatBehavior - 动画重复播放的时间、次数或类型
                                        TimeSpan - [-][日.]时:分:秒[.1位到7为的秒后的小数]
                                        nx - 播放次数。1x,3x    
                                        Forever - 永久播放
                                Speedratio - 时间线的速率的倍数。默认值 1
                                FillBehavior - 动画结束后的行为 [System.windows.Media.Animation.FillBehavior枚举]
                                        FillBehavior.HoldEnd - 动画结束后,保留动画属性的结束值。默认值
                                        FillBehavior.Stop - 动画结束后,恢复动画属性为其初始值
                                -->
                                <PointAnimation
                                        Storyboard.Targetname="ellipseGeometry"
                                        Storyboard.TargetProperty="Center"
                                        BeginTime="00:00:00"
                                        From="50,50"
                                        To="300,500"
                                        Duration="0:0:3"
                                        autoReverse="True"
                                        RepeatBehavior="00:00:10">
                                </PointAnimation>
                        </Storyboard>
                </StackPanel.Resources>
                
        </StackPanel>
</UserControl>   PointAnimation.xaml.cs

using System;

using System.Collections.Generic;

using System.linq;

using System.Net;

using System.windows;

using System.windows.Controls;

using System.windows.documents;

using System.windows.input;

using System.windows.Media;

using System.windows.Media.Animation;

using System.windows.Shapes;


namespace Silverlight20.Animation

{

         public partial class PointAnimation : UserControl

        {

                 public PointAnimation()

                {

                        InitializeComponent();

                }


                 private voID Animation_Begin( object sender,RoutedEventArgs e)

                {

                         // 播放

                        storyboard.Begin();

                }


                 private voID Animation_Pause( object sender,RoutedEventArgs e)

                {

                         // 暂停

                        storyboard.Pause();

                }


                 private voID Animation_Resume( object sender,RoutedEventArgs e)

                {

                         // 继续

                        storyboard.Resume();

                }


                 private voID Animation_Stop( object sender,RoutedEventArgs e)

                {

                         // 停止

                        storyboard.Stop();

                }

        }

}
  未完待续>>
OK
[源码下载] 总结

以上是内存溢出为你收集整理的稳扎稳打Silverlight(11) - 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation全部内容,希望文章能够帮你解决稳扎稳打Silverlight(11) - 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053085.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存