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