Animatable.ApplyAnimationClock 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用指定的 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)
参数
要进行动画处理的属性。
- 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。
此动画问题主要出现在生存期较长的对象上。 当对某个对象进行垃圾回收时,它的时钟也会断开连接并进行垃圾回收。
有关时钟对象的详细信息,请参阅 动画和计时系统概述。
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈