zoukankan      html  css  js  c++  java
  • Windows Phone 7 Animation动画编程

    Silverlight动画概述
    http://msdn.microsoft.com/zh-cn/library/cc189019(v=VS.95).aspx

    类的继承关系

    Object
        DependencyObject (abstract)
             Timeline (abstract)
                  DoubleAnimation
                  DoubleAnimationUsingKeyFrames
                  ColorAnimation
                  ColorAnimationUsingKeyFrames
                  PointAnimation
                  PointAnimationUsingKeyFrames
                  ObjectAnimationUsingKeyFrames

    Storyboard 类介绍

    通过时间线控制动画,并为其子动画提供对象和属性目标信息。
    System.Windows.Media.Animation
     XAML 
     <Storyboard ...>
      oneOrMoreChildTimelines
    </Storyboard>

    XAML 值
    oneOrMoreChildTimelines
    从 Timeline 派生的类的一个或多个对象元素。这可以是另一个 Storyboard,也可以是许多动画类型中的任意一种。

     可以将 Storyboard 作为其他动画对象(例如 DoubleAnimation)以及其他 Storyboard 对象的容器。可以使用 Storyboard 对象的交互式方法来启动、暂停、继续和停止动画。可以使用 Begin、Stop、Pause 和 Resume 方法来控制演示图板(动画)的播放。

    例子点击按钮按钮会旋转一圈 

    <Button Content="会旋转的按钮"
    Grid.Row
    ="0"
    HorizontalAlignment
    ="Center"
    VerticalAlignment
    ="Center"
    RenderTransformOrigin
    ="0.5 0.5"
    Click
    ="OnButtonClick">
    <Button.RenderTransform>
    <RotateTransform />
    </Button.RenderTransform>
    </Button>
    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;
    using Microsoft.Phone.Controls;

    namespace ClickAndSpin
    {
    public partial class MainPage : PhoneApplicationPage
    {
    public MainPage()
    {
    InitializeComponent();
    }

    void OnButtonClick(object sender, RoutedEventArgs args)
    {
    Button btn
    = sender as Button;
    RotateTransform rotateTransform
    = btn.RenderTransform as RotateTransform;

    // 创建和定义 animation
    DoubleAnimation anima = new DoubleAnimation();
    anima.From
    = 0;//开始的值
    anima.To = 360;//结束的值
    anima.Duration = new Duration(TimeSpan.FromSeconds(0.5));//持续的时间

    // 设置Storyboard的属性
    Storyboard.SetTarget(anima, rotateTransform);
    Storyboard.SetTargetProperty(anima,
    new PropertyPath(RotateTransform.AngleProperty));

    // 创建 storyboard, 并且添加上 animation, 然后动画开始!
    Storyboard storyboard = new Storyboard();
    storyboard.Children.Add(anima);
    storyboard.Begin();
    }
    }
    }

    备注:

    Storyboard.SetTarget(timeline ,target) 方法
    Silverlight 导致指定的 Timeline 以指定对象为目标。

    timeline
    类型:System.Windows.Media.Animation.Timeline
    以指定的依赖项对象为目标的时间线。
    target
    类型:System.Windows.DependencyObject
    要作为目标的对象的实际实例。
     

    Storyboard.SetTargetProperty(element ,path) 方法
    Silverlight 使指定的 Timeline 以指定的依赖项属性为目标。

    element
    类型:System.Windows.Media.Animation.Timeline
    要将指定的依赖项属性与之关联的时间线。
    path
    类型:System.Windows.PropertyPath
    说明要进行动画处理的依赖项属性的路径。

  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/linzheng/p/1962632.html
Copyright © 2011-2022 走看看