Animatable.ApplyAnimationClock 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用指定的 AnimationClock对指定的 DependencyProperty 进行动画处理。
重载
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
SnapshotAndReplace 且 clock
null
,将从指定属性中删除所有动画(但不停止)。 如果 handoffBehavior
Compose 时钟 null
,则此方法不起作用。
- handoffBehavior
- HandoffBehavior
一个值,该值指定新动画应如何与任何已影响属性值的当前动画进行交互。
实现
示例
以下示例演示如何使用不同的 HandoffBehavior 设置应用动画时钟。
注解
请注意,使用此方法从属性中删除时钟不会停止这些时钟。
使用 Compose HandoffBehavior
使用 ComposeHandoffBehavior将 Storyboard、AnimationTimeline或 AnimationClock 应用于属性时,以前与该属性关联的任何 Clock 对象将继续使用系统资源;计时系统不会自动删除这些时钟。
若要避免使用 Compose应用大量时钟时出现性能问题,应在动画属性完成后从动画属性中删除撰写时钟。 可通过多种方式删除时钟。
若要从属性中删除所有时钟,请使用动画对象的 ApplyAnimationClock(DependencyProperty, AnimationClock) 或 BeginAnimation(DependencyProperty, AnimationTimeline) 方法。 指定作为第一个参数进行动画处理的属性,
null
为第二个参数。 这将从属性中删除所有动画时钟。若要从时钟列表中删除特定 AnimationClock,请使用 AnimationClock 的 Controller 属性检索 ClockController,然后调用 ClockController的 Remove 方法。 这通常在时钟的 Completed 事件处理程序中完成。 请注意,只有根时钟可由 ClockController控制;子时钟的 Controller 属性将返回
null
。 另请注意,如果时钟的有效持续时间永久,则不会调用 Completed 事件。 在这种情况下,用户需要确定何时调用 Remove。
这主要是对生存期较长的对象进行动画的问题。 当对象被垃圾回收时,其时钟也会断开连接并回收垃圾。
有关时钟对象的详细信息,请参阅 动画和计时系统概述。