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
    说明要进行动画处理的依赖项属性的路径。

  • 相关阅读:
    android 项目
    input keyevent 数字对应的操作
    logcat 使用方法
    android查看内存使用情况
    图片点击放大效果
    禁止img图片拖动在新窗口打开
    人工智能
    游戏开发
    随手做的一个模拟弹出窗口
    Html的<meta>标签使用方法及用例
  • 原文地址:https://www.cnblogs.com/linzheng/p/1962632.html
Copyright © 2011-2022 走看看