Animatable.ApplyAnimationClock Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Animuje określone DependencyProperty przy użyciu określonego AnimationClock.
Przeciążenia
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Stosuje AnimationClock do określonego DependencyProperty. Jeśli właściwość jest już animowana, używane jest zachowanie przekazywania SnapshotAndReplace. |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Stosuje AnimationClock do określonego DependencyProperty. Jeśli właściwość jest już animowana, zostanie użyta określona HandoffBehavior. |
ApplyAnimationClock(DependencyProperty, AnimationClock)
Stosuje AnimationClock do określonego DependencyProperty. Jeśli właściwość jest już animowana, używane jest zachowanie przekazywania 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)
Parametry
Właściwość do animowania.
- clock
- AnimationClock
Zegar, z którym można animować określoną właściwość. Jeśli clock
jest null
, wszystkie animacje zostaną usunięte z określonej właściwości (ale nie zostaną zatrzymane).
Implementuje
Uwagi
Należy pamiętać, że usunięcie zegarów z właściwości przy użyciu tej metody nie powoduje zatrzymania tych zegarów.
Dotyczy
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)
Stosuje AnimationClock do określonego DependencyProperty. Jeśli właściwość jest już animowana, zostanie użyta określona 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)
Parametry
Właściwość do animowania.
- clock
- AnimationClock
Zegar, z którym można animować określoną właściwość. Jeśli handoffBehavior
jest SnapshotAndReplace, a clock
jest null
, wszystkie animacje zostaną usunięte z określonej właściwości (ale nie zostaną zatrzymane). Jeśli handoffBehavior
jest Compose, a zegar jest null
, ta metoda nie ma wpływu.
- handoffBehavior
- HandoffBehavior
Wartość określająca sposób interakcji nowej animacji z wszelkimi bieżącymi animacjami, które mają już wpływ na wartość właściwości.
Implementuje
Przykłady
W poniższym przykładzie pokazano, jak zastosować zegary animacji przy użyciu różnych ustawień HandoffBehavior.
Uwagi
Należy pamiętać, że użycie tej metody w celu usunięcia zegarów z właściwości nie powoduje zatrzymania tych zegarów.
Korzystanie z narzędzia Compose HandoffBehavior
Zastosowanie Storyboard, AnimationTimelinelub AnimationClock do właściwości przy użyciu ComposeHandoffBehavior, wszystkie obiekty Clock skojarzone wcześniej z tą właściwością nadal zużywają zasoby systemowe; system chronometrażu nie usunie tych zegarów automatycznie.
Aby uniknąć problemów z wydajnością podczas stosowania dużej liczby zegarów przy użyciu Compose, należy usunąć tworzenie zegarów z animowanej właściwości po zakończeniu. Istnieje kilka sposobów usunięcia zegara.
Aby usunąć wszystkie zegary z właściwości, użyj metody ApplyAnimationClock(DependencyProperty, AnimationClock) lub BeginAnimation(DependencyProperty, AnimationTimeline) animowanego obiektu. Określ właściwość, która jest animowana jako pierwszy parametr, a
null
jako drugą. Spowoduje to usunięcie wszystkich zegarów animacji z właściwości .Aby usunąć określone AnimationClock z listy zegarów, użyj właściwości ControllerAnimationClock, aby pobrać ClockController, a następnie wywołaj metodę RemoveClockController. Zazwyczaj odbywa się to w programie obsługi zdarzeń Completed zegara. Należy pamiętać, że tylko zegary główne mogą być kontrolowane przez ClockController; właściwość Controller zegara podrzędnego zwróci
null
. Należy również pamiętać, że zdarzenie Completed nie będzie wywoływane, jeśli obowiązujący czas trwania zegara jest na zawsze. W takim przypadku użytkownik będzie musiał określić, kiedy wywołać Remove.
Jest to przede wszystkim problem z animacjami obiektów, które mają długi okres istnienia. Gdy obiekt zostanie odśmiecony, jego zegary również zostaną odłączone i odśmiecane śmieci.
Aby uzyskać więcej informacji o obiektach zegara, zobacz Animacja i System chronometrażu — omówienie.