次の方法で共有


Animatable.ApplyAnimationClock メソッド

定義

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

オーバーロード

ApplyAnimationClock(DependencyProperty, AnimationClock)

指定した DependencyPropertyAnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。

ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

指定した DependencyPropertyAnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。

ApplyAnimationClock(DependencyProperty, AnimationClock)

指定した DependencyPropertyAnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、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)

指定した DependencyPropertyAnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、指定した 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 の使用

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

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

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

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

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

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

適用対象