Windows Phone 7 Animation動畫編程

來源:互聯網
上載者:User

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
說明要進行動畫處理的依賴項屬性的路徑。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.