Animatable.ApplyAnimationClock 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用指定的 DependencyProperty來動畫化。AnimationClock
多載
| 名稱 | Description |
|---|---|
| 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 且 SnapshotAndReplaceclock , null則所有動畫將從指定屬性中移除(但不會停止)。 若 handoffBehavior 且 Compose 時鐘為 null,則此方法無效。
- handoffBehavior
- HandoffBehavior
值,指定新動畫應該如何與任何已經影響屬性值的目前動畫互動。
實作
範例
以下範例展示了如何使用不同 HandoffBehavior 設定來套用動畫時鐘。
備註
請注意,使用此方法從屬性移除時鐘並不會停止這些時鐘。
使用 Compose HandoffBehavior
當您使用 StoryboardAnimationTimeline 將 AnimationClock、Compose 或 HandoffBehavior 套用至屬性時,先前與該屬性相關聯的任何 Clock 物件都會繼續取用系統資源;計時系統不會自動移除這些時鐘。
若要避免使用 Compose 套用大量時鐘時發生效能問題,您應該在時鐘完成後,從動畫化的屬性中移除已組成的時鐘。 有幾個方式可移除時鐘。
若要從屬性移除所有時鐘,請使用動畫化物件的 ApplyAnimationClock(DependencyProperty, AnimationClock) 或 BeginAnimation(DependencyProperty, AnimationTimeline) 方法。 指定要顯示動畫的屬性作為第一個參數,並指定
null作為第二個。 這將會從屬性移除所有動畫時序控制。若要從時鐘清單中移除特定 AnimationClock,請使用 Controller 的 AnimationClock 屬性來擷取 ClockController,然後呼叫 Remove 的 ClockController 方法。 這通常是在時鐘的 Completed 事件處理常式中完成。 請注意,只有根時鐘可以由 ClockController 控制;子時鐘的 Controller 屬性會傳回
null。 另請注意,如果時鐘的有效持續時間是永遠,則不會呼叫 Completed 事件。 在此情況下,使用者必須判斷呼叫 Remove 的時機。
這主要是在存留期較長的物件才會發生的動畫問題。 當物件被垃圾回收時,其時鐘也會被中斷連接並進行垃圾回收。
欲了解更多時鐘物件相關資訊,請參閱 動畫與時序系統概述。