马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

DoubleAnimation简单教程-WPF

[复制链接]
查看9974 | 回复1 | 2013-9-10 10:37:05 | 显示全部楼层 |阅读模式
DoubleAnimation实现了动画效果,比如会飘的云(无缝隙)等

DoubleAnimation 可以用C#写,也可以用XAML写

DoubleAnimation指定一个Double类型的属性,使其在指定的时间内由起点值到达终点值,从而形成动画效果.
应用它来实现动画效果,只要简单地指定几个参数值就可以了.
看下面的代码是改变一个按钮的大小的动画

[C#] 纯文本查看 复制代码
//指定长度变化的起点,终点与持续时间
             DoubleAnimation widthAnimation =
                new DoubleAnimation(200, 400, new Duration(TimeSpan.FromSeconds(0.8)));

            //指定高度变化的起点,终点与持续时间
             DoubleAnimation heightAnimation =
                new DoubleAnimation(50, 100, new Duration(TimeSpan.FromSeconds(0.8)));

            //开始动画
            //变化不是阻塞的,而是异步,所以看上去长度与高度几乎是同时变化
             btn.BeginAnimation(Button.WidthProperty, widthAnimation);
             btn.BeginAnimation(Button.HeightProperty, heightAnimation);


这样我们就可以得到一个简单的动画,它在0.8秒内将按钮的长度由200变化到400,高度由50变化到100.

但我们会发现当动画结束后,按钮的大小保持在(400,100), 如果我们需要动画结束后将按钮大小恢复到原大小,
那么我们应该指定另外一个参数:FillBehavior

[C#] 纯文本查看 复制代码
//指定长度变化的起点,终点与持续时间,并在动画结束时恢复原值
             DoubleAnimation widthAnimation =
                new DoubleAnimation(200, 400, new Duration(TimeSpan.FromSeconds(0.8)), FillBehavior.Stop);

            //指定高度变化的起点,终点与持续时间,并在动画结束时恢复原值
             DoubleAnimation heightAnimation =
                new DoubleAnimation(50, 100, new Duration(TimeSpan.FromSeconds(0.8)), FillBehavior.Stop);



分享一个动画的例子 :

[XML] 纯文本查看 复制代码
<Button Name="btnTra" Tag="Tran" Margin="5,0,0,0" ImageSource="Images/jian.png"
 Click="btnClear_Click">
                                <Dev:ButtonEx.Triggers>
                                    <EventTrigger RoutedEvent="Dev:ButtonEx.Loaded">
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimation From="0.1" To="1.0"
 RepeatBehavior="Forever" Duration="0:0:1" Storyboard.TargetProperty="Opacity"/>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger>                                                 
                                </Dev:ButtonEx.Triggers>
                            </Dev:Button>


DoubleAnimation 可以用C#写,也可以用XAML写。

下面是分享一个C#的DoubleAnimation代码示例

[C#] 纯文本查看 复制代码
 DoubleAnimation d = new DoubleAnimation(
                     0,
                     373,
                     new Duration(TimeSpan.FromMilliseconds(8000))
                     );
            d.RepeatBehavior = RepeatBehavior.Forever;
            d.AutoReverse = true;
            Storyboard s = new Storyboard();
            Storyboard.SetTarget(d, image1);
            Storyboard.SetTargetProperty(d, new PropertyPath("(Canvas.Left)"));
            s.Children.Add(d);
            s.Begin();


C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
headindotcn | 2013-9-10 10:43:40 | 显示全部楼层
谢谢分享,学习了
it招聘
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则