Animatable.ApplyAnimationClock 메서드

정의

지정된 을 사용하여 지정된 DependencyProperty 애니메이션 효과를 니다 AnimationClock.

오버로드

Name 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)

매개 변수

dp
DependencyProperty

애니메이션 효과를 주려는 속성입니다.

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)

매개 변수

dp
DependencyProperty

애니메이션 효과를 주려는 속성입니다.

clock
AnimationClock

지정된 속성에 애니메이션 효과를 적용할 시계입니다. 있는 handoffBehaviorSnapshotAndReplaceclock경우 null 지정된 속성에서 모든 애니메이션이 제거되지만 중지되지는 않습니다. is handoffBehavior 와 clock이Composenull 이 메서드는 아무런 영향을 주지 않습니다.

handoffBehavior
HandoffBehavior

새 애니메이션이 속성 값에 이미 영향을 주는 현재 애니메이션과 상호 작용하는 방법을 지정하는 값입니다.

구현

예제

다음 예제에서는 다른 HandoffBehavior 설정을 사용하여 애니메이션 클록을 적용하는 방법을 보여 줍니다.

설명

이 메서드를 사용하여 속성에서 클록을 제거해도 해당 클록은 중지되지 않습니다.

Compose HandoffBehavior 사용

적용할 때 Storyboard, AnimationTimeline, 또는 AnimationClockComposeHandoffBehavior와 함께 속성에 사용하면, 해당 속성에 이전에 연관된 모든 Clock 객체가 여전히 시스템 리소스를 소비합니다. 타이밍 시스템은 이러한 클록을 자동으로 제거하지 않습니다.

시계의 수가 많을 때 Compose를 사용할 경우 성능 문제가 발생하지 않도록, 완료 후 애니메이션된 속성에서 조합한 클록을 제거해야 합니다. 여러 가지 방법으로 클록을 제거할 수 있습니다.

  • 속성에서 모든 클록을 제거하려면 애니메이션 개체의 ApplyAnimationClock(DependencyProperty, AnimationClock) 또는 BeginAnimation(DependencyProperty, AnimationTimeline) 메서드를 사용합니다. 첫 번째 매개변수로 애니메이션이 적용될 속성을 지정하고 null를 두 번째 매개변수로 지정하십시오. 이렇게 하면 해당 속성에서 모든 애니메이션 클록이 제거됩니다.

  • 특정한 AnimationClock을 클록 목록에서 제거하려면, ControllerAnimationClock 속성을 사용하여 ClockController를 검색한 후, RemoveClockController 메서드를 호출합니다. 일반적으로 클록에 대한 Completed 이벤트 처리기에서 수행됩니다. 루트 클록만이 ClockController로 제어될 수 있습니다. 자식 클록의 Controller 속성은 null을 반환합니다. 또한 Completed 이벤트는 클록의 유효 기간이 영원할 경우 호출되지 않습니다. 사용자가 Remove를 언제 호출할지 결정해야 하는 경우.

이것은 주로 수명이 긴 개체에 대한 애니메이션에서 문제가 됩니다. 개체가 가비지 수집될 경우 해당 클록도 연결이 끊어지고 가비지가 수집됩니다.

클록 개체에 대한 자세한 내용은 애니메이션 및 타이밍 시스템 개요를 참조하세요.

적용 대상