Animatable.ApplyAnimationClock メソッド

定義

指定した DependencyProperty を使用して、指定した AnimationClock をアニメーション化します。

オーバーロード

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)

パラメーター

dp
DependencyProperty

アニメーション化するプロパティ。

clock
AnimationClock

指定したプロパティをアニメーション化する際に使用するクロック。 clocknull の場合は、すべてのアニメーションが指定したプロパティから削除されます (ただし停止されません)。

実装

注釈

このメソッドを使用してプロパティからクロックを削除しても、これらのクロックは停止されないことに注意してください。

適用対象

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)

パラメーター

dp
DependencyProperty

アニメーション化するプロパティ。

clock
AnimationClock

指定したプロパティをアニメーション化する際に使用するクロック。 handoffBehaviorSnapshotAndReplace であり、clocknull である場合、指定したプロパティからすべてのアニメーションが削除されます (停止はされません)。 handoffBehaviorCompose であり、クロックが null である場合、このメソッドは無効です。

handoffBehavior
HandoffBehavior

プロパティ値に既に影響を及ぼしている現在のアニメーションと新しいアニメーションが対話する方法を指定する値。

実装

次の例は、さまざまな HandoffBehavior 設定を使用してアニメーション クロックを適用する方法を示しています。

注釈

プロパティからクロックを削除するためにこのメソッドを使用しても、これらのクロックは停止されないことに注意してください。

Compose HandoffBehavior の使用

ComposeHandoffBehavior を使用してプロパティに StoryboardAnimationTimeline、または AnimationClock を適用すると、そのプロパティに以前関連付けられていたすべての Clock オブジェクトがシステム リソースを消費し続けます。タイミング システムは、これらのクロックを自動的には削除しません。

Compose を使って大量のクロックを適用するときのパフォーマンスの問題を回避するには、アニメーション化されたプロパティから、構成クロックを完了後に削除する必要があります。 クロックを削除する方法はいくつかあります。

  • プロパティからすべてのクロックを削除するには、アニメーション化されたオブジェクトの ApplyAnimationClock(DependencyProperty, AnimationClock) または BeginAnimation(DependencyProperty, AnimationTimeline) メソッドを使用します。 アニメーション化するプロパティを 1 番目のパラメーターとして指定し、null を 2 番目として指定します。 これにより、すべてのアニメーション クロックがプロパティから削除されます。

  • 特定の AnimationClock をクロックの一覧から削除するには、AnimationClockController プロパティを使用して ClockControllerを取得し、次に RemoveClockController メソッドを呼び出します。 これは通常、クロックの Completed イベント ハンドラーで実行されます。 ClockController によって制御できるのはルート クロックのみであることに注意してください。子クロックの Controller プロパティは null を返します。 クロックの有効期間が永久の場合は Completed イベントが呼び出されないことにも注意してください。 その場合は、ユーザーが Remove を呼び出すタイミングを決定する必要があります。

これは主に、有効期間が長いオブジェクトでのアニメーションの問題です。 オブジェクトがガベージ コレクションされる場合は、そのクロックも切断されて、ガベージ コレクションされます。

クロック オブジェクトの詳細については、「 アニメーションとタイミング システムの概要」を参照してください。

適用対象