Animatable.ApplyAnimationClock 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用指定的 AnimationClock,以動畫顯示指定的 DependencyProperty。
多載
ApplyAnimationClock(DependencyProperty, AnimationClock) |
將 AnimationClock 套用至指定的 DependencyProperty。 如果屬性已經產生動畫效果,則會使用 SnapshotAndReplace 交接行為。 |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
將 AnimationClock 套用至指定的 DependencyProperty。 如果屬性已經產生動畫效果,則會使用指定的 HandoffBehavior。 |
ApplyAnimationClock(DependencyProperty, AnimationClock)
將 AnimationClock 套用至指定的 DependencyProperty。 如果屬性已經產生動畫效果,則會使用 SnapshotAndReplace 交接行為。
public:
virtual void ApplyAnimationClock(System::Windows::DependencyProperty ^ dp, System::Windows::Media::Animation::AnimationClock ^ clock);
public void ApplyAnimationClock (System.Windows.DependencyProperty dp, System.Windows.Media.Animation.AnimationClock clock);
abstract member ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock -> unit
override this.ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock -> unit
Public Sub ApplyAnimationClock (dp As DependencyProperty, clock As AnimationClock)
參數
要產生動畫效果的屬性。
- clock
- AnimationClock
用來建立指定屬性動畫的時鐘。 如果 clock
null
,則會從指定的屬性移除所有動畫(但不會停止)。
實作
備註
請注意,使用此方法從屬性移除時鐘並不會停止這些時鐘。
適用於
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)
將 AnimationClock 套用至指定的 DependencyProperty。 如果屬性已經產生動畫效果,則會使用指定的 HandoffBehavior。
public:
virtual void ApplyAnimationClock(System::Windows::DependencyProperty ^ dp, System::Windows::Media::Animation::AnimationClock ^ clock, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void ApplyAnimationClock (System.Windows.DependencyProperty dp, System.Windows.Media.Animation.AnimationClock clock, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
abstract member ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock * System.Windows.Media.Animation.HandoffBehavior -> unit
override this.ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub ApplyAnimationClock (dp As DependencyProperty, clock As AnimationClock, handoffBehavior As HandoffBehavior)
參數
要產生動畫效果的屬性。
- clock
- AnimationClock
用來建立指定屬性動畫的時鐘。 如果 handoffBehavior
SnapshotAndReplace 且 clock
null
,則會從指定的屬性移除所有動畫(但不會停止)。 如果 handoffBehavior
是 Compose,而且時鐘是 null
,這個方法就沒有作用。
- handoffBehavior
- HandoffBehavior
值,指定新動畫應該如何與任何已經影響屬性值的目前動畫互動。
實作
範例
下列範例示範如何使用不同的 HandoffBehavior 設定來套用動畫時鐘。
備註
請注意,使用此方法從屬性移除時鐘並不會停止這些時鐘。
使用 Compose HandoffBehavior
當您使用 ComposeHandoffBehavior將 Storyboard、AnimationTimeline或 AnimationClock 套用至屬性時,先前與該屬性相關聯的任何 Clock 對象都會繼續取用系統資源:計時系統不會自動移除這些時鐘。
若要避免使用 Compose套用大量時鐘時的效能問題,您應該在時鐘完成之後,從動畫屬性中移除撰寫時鐘。 有數種方式可以移除時鐘。
若要從 屬性中移除所有時鐘,請使用動畫物件的 ApplyAnimationClock(DependencyProperty, AnimationClock) 或 BeginAnimation(DependencyProperty, AnimationTimeline) 方法。 將動畫屬性指定為第一個參數,並將
null
指定為第二個參數。 這會從屬性中移除所有動畫時鐘。若要從時鐘清單中移除特定 AnimationClock,請使用 AnimationClock 的 Controller 屬性來擷取 ClockController,然後呼叫 ClockController的 Remove 方法。 這通常是在時鐘的 Completed 事件處理程式中完成。 請注意,只有根時鐘可以由 ClockController控制;子時鐘的 Controller 屬性會傳回
null
。 另請注意,如果時鐘的有效持續時間是永遠的,則不會呼叫 Completed 事件。 在這裡情況下,使用者必須判斷何時呼叫 Remove。
這主要是物件上具有較長存留期之動畫的問題。 當物件被垃圾收集時,其時鐘也會中斷連線並垃圾收集。
如需時鐘物件的詳細資訊,請參閱 動畫和計時系統概觀。