先制作一個Story,并且設定對象:
背景代碼分析:
1、有關動畫屬性參數的設定代碼 :
//設定動畫是否回卷操作
leftEllipseStory.AutoReverse = true;
//設定動畫将要開始的時間,在此可設定其延遲開始的時間
leftEllipseStory.BeginTime = System.TimeSpan.FromSeconds(1);
//當動畫到達其活動時間的結束時點時将如何動作
leftEllipseStory.FillBehavior = FillBehavior.Stop;
//修改RepeatBehavior屬性方法示例
#region RepeatBehavior示例一
//leftEllipseStory.RepeatBehavior =RepeatBehavior.Forever; //設定重複動畫的次數
// 一個疊代 Count,指定時間線将要播放的次數;
// 一個 TimeSpan 值,指定此時間線活動周期的總長度;
// 或者特殊值 Forever,指定時間線應該無限重複。
//預設值是 RepeatBehavior 的 Count 為 1,該值訓示時間線播放一次。
#endregion
#region RepeatBehavior示例二
RepeatBehavior rbc = new RepeatBehavior(6);
leftEllipseStory.RepeatBehavior = rbc;
#endregion
//Duration表示 Timeline 處于活動狀态的持續時間
Duration dr = new Duration(TimeSpan.FromMilliseconds(500));
leftEllipseStory.Duration = dr;
//指定此時間線的時間相對于其父級速度的前進速率,越大越快
leftEllipseStory.SpeedRatio = 7; //一個大于 0 的有限值,指定此時間線的時間相對于其父級速度的前進速率。
//如果此時間線為根時間線,則此屬性指定預設時間線速度。該值用因子表示,
//其中 1 表示正常速度,2 表示雙倍速度,0.5 為半速,依此類推。
2、有關動畫控制的代碼
leftEllipseStory.Begin();
leftEllipseStory.Pause();
leftEllipseStory.Resume();
leftEllipseStory.Stop();
3、有關指派動畫給指定控件的代碼,共有三種方式來達到此目的
#region 方法一
this.leftEllipseStory.SetValue(Storyboard.TargetNameProperty, "ellipseRight"); //通過代碼動态設定TargetNameProperty值,進而把某個動畫指定給某個控件
#endregion
#region 方法二
Storyboard.SetTargetName(leftEllipseStory, "ellipseRight"); //把對象的名稱傳遞給leftEllipseStory
#endregion
#region 方法三
Storyboard.SetTarget(leftEllipseStory, ellipseRight); //把對象傳遞給leftEllipseStory
#endregion
4、有關動态建立動畫并進行指派的代碼
Storyboard newstb = new Storyboard();
Storyboard.SetTarget(newstb, ellipseRight); //注意:在此處不能用 Storyboard.SetTargetName(newstb, "ellipseRight")方法
DoubleAnimation newDbAnim = new DoubleAnimation();
newDbAnim.From = 1.00;
newDbAnim.To = 0.0;
Storyboard.SetTargetProperty(newDbAnim, new PropertyPath("(UIElement.Opacity)"));
newstb.Children.Add(newDbAnim);