FrameworkElement.BeginStoryboard 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
开始提供情节提要中包含的操作序列。
重载
BeginStoryboard(Storyboard) |
开始提供情节提要中包含的操作序列。 |
BeginStoryboard(Storyboard, HandoffBehavior) |
开始提供的情节提要中包含的操作序列,其中为属性已创建动画时应发生的情况指定选项。 |
BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
开始提供情节提要中包含的操作序列,并在动画启动后指定状态控制动画。 |
BeginStoryboard(Storyboard)
开始提供情节提要中包含的操作序列。
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard -> unit
Public Sub BeginStoryboard (storyboard As Storyboard)
参数
- storyboard
- Storyboard
要开始的情节提要。
示例
以下示例从资源检索 Storyboard,然后在处理内部事件时运行该 Storyboard。
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
Storyboard s;
s = (Storyboard)this.FindResource("RotateStoryboard");
this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim s As Storyboard
s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
Me.BeginStoryboard(s)
End Sub
注解
大多数典型的动画方案不使用此方法。 通常,在标记中创建 Storyboard 或 BeginStoryboard 元素,然后将这些元素作为 EventTrigger 内容放置在元素上。 当事件触发时,动画将运行。 Storyboard 的大多数控件方面都可以由标记中公开的属性来解决。
对于不使用 isControllable
、参数或指定该参数 false
的签名,动画到达“填充”期间后,将立即删除与动画关联的时间线时钟。 因此,动画在运行一次后无法重新启动。 控制动画还要求情节提要具有 x:Name 指令 或可通过代码中的引用访问。
适用于
BeginStoryboard(Storyboard, HandoffBehavior)
开始提供的情节提要中包含的操作序列,其中为属性已创建动画时应发生的情况指定选项。
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior)
参数
- storyboard
- Storyboard
要开始的情节提要。
- handoffBehavior
- HandoffBehavior
描述在情节提要中描述的属性已进行动画处理时要使用的行为的枚举值。
示例
以下示例从资源检索 Storyboard,然后在处理内部事件时运行该 Storyboard。
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
Storyboard s;
s = (Storyboard)this.FindResource("RotateStoryboard");
this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim s As Storyboard
s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
Me.BeginStoryboard(s)
End Sub
注解
大多数典型的动画方案不使用此方法。 通常,在标记中创建 Storyboard 或 BeginStoryboard 元素,然后将这些元素作为 EventTrigger 内容放置在元素上。 当事件触发时,动画将运行。 Storyboard 的大多数控件方面都可以由标记中公开的属性来解决。
对于不使用 isControllable
、参数或指定该参数 false
的签名,动画到达“填充”期间后,将立即删除与动画关联的时间线时钟。 因此,动画在运行一次后无法重新启动。 控制动画还要求情节提要具有 x:Name 指令 或可通过代码中的引用访问。
交接行为可以指定为 BeginStoryboard的属性。
使用 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。
这主要是对生存期较长的对象进行动画的问题。 当对象被垃圾回收时,其时钟也会断开连接并回收垃圾。
有关时钟对象的详细信息,请参阅 动画和计时系统概述。
适用于
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
开始提供情节提要中包含的操作序列,并在动画启动后指定状态控制动画。
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior, bool isControllable);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior, bool isControllable);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior * bool -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior, isControllable As Boolean)
参数
- storyboard
- Storyboard
要开始的情节提要。
- handoffBehavior
- HandoffBehavior
描述在情节提要中描述的属性已进行动画处理时要使用的行为的枚举值。
- isControllable
- Boolean
声明动画在启动后是否可控制(可暂停)。
注解
大多数典型的动画方案不使用此方法。 通常,在标记中创建 Storyboard 或 BeginStoryboard 元素,然后将这些元素作为 EventTrigger 内容放置在元素上。 当事件触发时,动画将运行。 Storyboard 的大多数控件方面都可以由标记中公开的属性来解决。
对于不使用 isControllable
、参数或指定该参数 false
的签名,动画到达“填充”期间后,将立即删除与动画关联的时间线时钟。 因此,动画在运行一次后无法重新启动。 控制动画还要求情节提要具有 x:Name 指令 或可通过代码中的引用访问。
交接行为可以指定为 BeginStoryboard的属性。
使用 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。
这主要是对生存期较长的对象进行动画的问题。 当对象被垃圾回收时,其时钟也会断开连接并回收垃圾。
有关时钟对象的详细信息,请参阅 动画和计时系统概述。