zoukankan      html  css  js  c++  java
  • WPF的动画(3)

    一.控制动画

    两种方式(需要注意的是命名作用域必须相同)

    1.xaml
    以TriggerAction的方式调用内部StoryBoard方法
    来自msdn

  • PauseStoryboard:暂停 Storyboard。

  • ResumeStoryboard:继续暂停的 Storyboard。

  • SetStoryboardSpeedRatio:更改 Storyboard 速度。

  • SkipStoryboardToFill:使 Storyboard 前进到其填充期的末尾(如果有填充期)。

  • StopStoryboard:停止 Storyboard。

  • RemoveStoryboard:移除 Storyboard。

    blend

    image

    2.使用代码声明storyboard,调用方法

        <Window.Resources>
            <Storyboard x:Key="demoStoryboard">
                <DoubleAnimation 
                                    Storyboard.TargetProperty="Width"
                                                 From="0"
                                                 To="300" Duration="0:0:5" />
            </Storyboard>
        </Window.Resources>
    

    此时不需要定义Storyboard.TargetName

    Storyboard sb = this.FindResource("demoStoryboard") as Storyboard;
    sb.Begin(demo2);

    还是一定要注意名称范围

    二.在没有StoryBoard情况下使用Animation

    xaml是不支持的,必须使用代码进行调用

    var _doubleAnimation = new DoubleAnimation();
    _doubleAnimation.Duration = TimeSpan.FromSeconds(1);
    _doubleAnimation.To = 200;
    demo2.BeginAnimation(Rectangle.WidthProperty, _doubleAnimation);

    BeginAnimation实际上调用了ApplyAnimationClock方法

    demo2.ApplyAnimationClock(Rectangle.WidthProperty, _doubleAnimation.CreateClock());

    三.关键帧动画

    其概念与flash中的关键帧概念相同,关键帧越多,动画效果就越真实,blend中产生的代码大多为关键帧动画

  •                         <DoubleAnimationUsingKeyFrames
                    Storyboard.TargetName="demoRectangle"
                    Storyboard.TargetProperty="Width"
                    Duration="0:0:10">
                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0" />
                                <LinearDoubleKeyFrame Value="350" KeyTime="0:0:1" />
                                <LinearDoubleKeyFrame Value="350" KeyTime="0:0:2" />
                                <LinearDoubleKeyFrame Value="50" KeyTime="0:0:3" />
                                <LinearDoubleKeyFrame Value="200" KeyTime="0:0:8" />
                            </DoubleAnimationUsingKeyFrames>
    

    四.缓冲效果

    wpf4新增内容,内置的关键帧物理效果,具体的在线sl效果都可以看的到

    http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/content.htm

查看全文
  • 相关阅读:
    博客园
    未释放的已删除文件
    ssh连接缓慢
    剑指 Offer 38. 字符串的排列
    剑指 Offer 37. 序列化二叉树
    剑指 Offer 50. 第一个只出现一次的字符
    剑指 Offer 36. 二叉搜索树与双向链表
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 34. 二叉树中和为某一值的路径
    剑指 Offer 33. 二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1783664.html
  • Copyright © 2011-2022 走看看