FrameworkElement.BeginStoryboard FrameworkElement.BeginStoryboard FrameworkElement.BeginStoryboard Method

Определение

Начинает последовательность действий, содержащихся в предоставленной раскадровке.Begins the sequence of actions contained in the provided storyboard.

Перегрузки

BeginStoryboard(Storyboard) BeginStoryboard(Storyboard) BeginStoryboard(Storyboard)

Начинает последовательность действий, содержащихся в предоставленной раскадровке.Begins the sequence of actions that are contained in the provided storyboard.

BeginStoryboard(Storyboard, HandoffBehavior) BeginStoryboard(Storyboard, HandoffBehavior) BeginStoryboard(Storyboard, HandoffBehavior)

Начинает последовательность действий, содержащихся в предоставленной раскадровке, с параметрами, указывающими на реакцию в случае уже анимированного свойства.Begins the sequence of actions contained in the provided storyboard, with options specified for what should happen if the property is already animated.

BeginStoryboard(Storyboard, HandoffBehavior, Boolean) BeginStoryboard(Storyboard, HandoffBehavior, Boolean) BeginStoryboard(Storyboard, HandoffBehavior, Boolean)

Начинает последовательность действий, содержащихся в предоставленной раскадровке, с указанным состоянием элемента управления анимацией после ее запуска.Begins the sequence of actions contained in the provided storyboard, with specified state for control of the animation after it is started.

BeginStoryboard(Storyboard) BeginStoryboard(Storyboard) BeginStoryboard(Storyboard)

Начинает последовательность действий, содержащихся в предоставленной раскадровке.Begins the sequence of actions that are contained in the provided 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

Параметры

storyboard
Storyboard Storyboard Storyboard

Раскадровка, которая будет начата.The storyboard to begin.

Примеры

В следующем примере извлекается Storyboard из ресурсов, а затем выполняется, Storyboard когда внутреннее событие обрабатывается в классе.The following example retrieves a Storyboard from resources, and then runs that Storyboard when an internal event is class handled.

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

Комментарии

В большинстве типичных сценариев анимации этот метод не используется.Most typical animation scenarios do not use this method. Как правило, элемент Storyboard или BeginStoryboard создается в разметке, а затем размещается как EventTrigger содержимое в элементе.Typically, you create the Storyboard or BeginStoryboard element in markup, and then you place these as the EventTrigger content on an element. При срабатывании события запускается анимация.When triggered by the event, the animation then runs. Большинство аспектов Storyboard управления может быть адресовано свойствами, предоставляемыми в разметке.Most of the control aspects of a Storyboard can be addressed by properties that are exposed in markup.

Для сигнатур, которые не используют isControllableпараметр, или при указании falseэтого параметра, часы временной шкалы, связанные с анимацией, удаляются сразу же после того, как анимация достигнет периода заполнения.For the signatures that do not use the isControllable, parameter, or when that parameter is specified false, the timeline clocks that are associated with the animation are removed as soon as the animation reaches the "Fill" period. Поэтому анимация не может быть перезапущена после однократного запуска.Therefore the animation cannot be restarted after running once. Для управления анимацией также требуется, чтобы раскадровка имела директиву x:Name или была доступна по ссылке в коде.Controlling an animation also requires that the storyboard have an x:Name Directive or be accessible by reference in code.

BeginStoryboard(Storyboard, HandoffBehavior) BeginStoryboard(Storyboard, HandoffBehavior) BeginStoryboard(Storyboard, HandoffBehavior)

Начинает последовательность действий, содержащихся в предоставленной раскадровке, с параметрами, указывающими на реакцию в случае уже анимированного свойства.Begins the sequence of actions contained in the provided storyboard, with options specified for what should happen if the property is already animated.

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

Параметры

storyboard
Storyboard Storyboard Storyboard

Раскадровка, которая будет начата.The storyboard to begin.

handoffBehavior
HandoffBehavior HandoffBehavior HandoffBehavior

Значение перечисления, описывающего поведение в случае, если описанное в раскадровке свойство уже анимировано.A value of the enumeration that describes behavior to use if a property described in the storyboard is already animated.

Примеры

В следующем примере извлекается Storyboard из ресурсов, а затем выполняется, Storyboard когда внутреннее событие обрабатывается в классе.The following example retrieves a Storyboard from resources, and then runs that Storyboard when an internal event is class handled.

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

Комментарии

В большинстве типичных сценариев анимации этот метод не используется.Most typical animation scenarios do not use this method. Как правило, элемент Storyboard или BeginStoryboard создается в разметке, а затем размещается как EventTrigger содержимое в элементе.Typically, you create the Storyboard or BeginStoryboard element in markup, and then you place these as the EventTrigger content on an element. При срабатывании события запускается анимация.When triggered by the event, the animation then runs. Большинство аспектов Storyboard управления может быть адресовано свойствами, предоставляемыми в разметке.Most of the control aspects of a Storyboard can be addressed by properties that are exposed in markup.

Для сигнатур, которые не используют isControllableпараметр, или при указании falseэтого параметра, часы временной шкалы, связанные с анимацией, удаляются сразу же после того, как анимация достигнет периода заполнения.For the signatures that do not use the isControllable, parameter, or when that parameter is specified false, the timeline clocks that are associated with the animation are removed as soon as the animation reaches the "Fill" period. Поэтому анимация не может быть перезапущена после однократного запуска.Therefore the animation cannot be restarted after running once. Для управления анимацией также требуется, чтобы раскадровка имела директиву x:Name или была доступна по ссылке в коде.Controlling an animation also requires that the storyboard have an x:Name Directive or be accessible by reference in code.

Поведение передачи можно указать как атрибут BeginStoryboard.Handoff behavior can be specified as an attribute of BeginStoryboard.

Использование создания HandoffBehaviorUsing the Compose HandoffBehavior

При Storyboardприменении, AnimationTimelineили AnimationClock к свойству с помощью Compose HandoffBehaviorвсе Clock объекты, ранее связанные с этим свойством, продолжают потреблять системные ресурсы; система времени не удаляйте часы автоматически.When you apply a Storyboard, AnimationTimeline, or AnimationClock to a property by using the Compose HandoffBehavior, any Clock objects previously associated with that property continue to consume system resources; the timing system does not remove the clocks automatically.

Чтобы избежать проблем с производительностью при применении большого количества часов с помощью Compose, следует удалить составные часы из анимированного свойства после их завершения.To avoid performance issues when you apply a large number of clocks by using Compose, you should remove composing clocks from the animated property after they complete. Существует несколько способов удаления часов.There are several ways to remove a clock:

  • Чтобы удалить все часы из свойства, используйте ApplyAnimationClock(DependencyProperty, AnimationClock) метод или BeginAnimation(DependencyProperty, AnimationTimeline) анимированного объекта.To remove all clocks from a property, use the ApplyAnimationClock(DependencyProperty, AnimationClock) or BeginAnimation(DependencyProperty, AnimationTimeline) method of the animated object. Укажите свойство, которое анимируется как первый параметр, а null в качестве второго.Specify the property being animated as the first parameter, and null as the second. Это приведет к удалению всех часов анимации из свойства.This removes all animation clocks from the property.

  • Чтобы AnimationClock удалить определенное значение из списка часов, Controller используйте свойство ClockControllerобъекта AnimationClock для получения, а затем вызовите Remove метод класса ClockController.To remove a specific AnimationClock from a list of clocks, use the Controller property of the AnimationClock to retrieve a ClockController, then call the Remove method of the ClockController. Обычно это делается в Completed обработчике событий для часов.This is typically done in the Completed event handler for a clock. Обратите внимание, что только корневые часы могут управляться ClockController Controller ; свойство дочернего таймера nullвозвращает.Note that only root clocks can be controlled by a ClockController; the Controller property of a child clock returns null. Обратите внимание, Completed что событие не возникает, если фактическая длительность часов бесконечно.Note also that the Completed event is not raised if the effective duration of the clock is forever. В этом случае пользователь должен определить, когда следует вызывать Remove.In that case, the user must determine when to call Remove.

В основном это проблема для анимации объектов, имеющих длинное время жизни.This is primarily an issue for animations on objects that have a long lifetime. Если объект уничтожается сборщиком мусора, его часы также отключаются и уничтожаются мусором.When an object is garbage collected, its clocks are also disconnected and garbage collected.

Дополнительные сведения об объектах часов см. в разделе Общие сведения о анимации и системе управления временем.For more information about clock objects, see Animation and Timing System Overview.

BeginStoryboard(Storyboard, HandoffBehavior, Boolean) BeginStoryboard(Storyboard, HandoffBehavior, Boolean) BeginStoryboard(Storyboard, HandoffBehavior, Boolean)

Начинает последовательность действий, содержащихся в предоставленной раскадровке, с указанным состоянием элемента управления анимацией после ее запуска.Begins the sequence of actions contained in the provided storyboard, with specified state for control of the animation after it is started.

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

Параметры

storyboard
Storyboard Storyboard Storyboard

Раскадровка, которая будет начата.The storyboard to begin.

handoffBehavior
HandoffBehavior HandoffBehavior HandoffBehavior

Значение перечисления, описывающего поведение в случае, если описанное в раскадровке свойство уже анимировано.A value of the enumeration that describes behavior to use if a property described in the storyboard is already animated.

isControllable
Boolean Boolean Boolean

Объявляет, является ли анимация управляемой после запуска (можно ли ее приостановить).Declares whether the animation is controllable (can be paused) after it is started.

Комментарии

В большинстве типичных сценариев анимации этот метод не используется.Most typical animation scenarios do not use this method. Как правило, элемент Storyboard или BeginStoryboard создается в разметке, а затем размещается как EventTrigger содержимое в элементе.Typically, you create the Storyboard or BeginStoryboard element in markup, and then you place these as the EventTrigger content on an element. При срабатывании события запускается анимация.When triggered by the event, the animation then runs. Большинство аспектов Storyboard управления может быть адресовано свойствами, предоставляемыми в разметке.Most of the control aspects of a Storyboard can be addressed by properties that are exposed in markup.

Для сигнатур, которые не используют isControllableпараметр, или при указании falseэтого параметра, часы временной шкалы, связанные с анимацией, удаляются сразу же после того, как анимация достигнет периода заполнения.For the signatures that do not use the isControllable, parameter, or when that parameter is specified false, the timeline clocks that are associated with the animation are removed as soon as the animation reaches the "Fill" period. Поэтому анимация не может быть перезапущена после однократного запуска.Therefore the animation cannot be restarted after running once. Для управления анимацией также требуется, чтобы раскадровка имела директиву x:Name или была доступна по ссылке в коде.Controlling an animation also requires that the storyboard have an x:Name Directive or be accessible by reference in code.

Поведение передачи можно указать как атрибут BeginStoryboard.Handoff behavior can be specified as an attribute of BeginStoryboard.

Использование создания HandoffBehaviorUsing the Compose HandoffBehavior

При Storyboardприменении, AnimationTimelineили AnimationClock к свойству с помощью Compose HandoffBehaviorвсе Clock объекты, ранее связанные с этим свойством, продолжают потреблять системные ресурсы; система времени не удаляйте часы автоматически.When you apply a Storyboard, AnimationTimeline, or AnimationClock to a property by using the Compose HandoffBehavior, any Clock objects previously associated with that property continue to consume system resources; the timing system does not remove the clocks automatically.

Чтобы избежать проблем с производительностью при применении большого количества часов с помощью Compose, следует удалить составные часы из анимированного свойства после их завершения.To avoid performance issues when you apply a large number of clocks by using Compose, you should remove composing clocks from the animated property after they complete. Существует несколько способов удаления часов.There are several ways to remove a clock:

  • Чтобы удалить все часы из свойства, используйте ApplyAnimationClock(DependencyProperty, AnimationClock) метод или BeginAnimation(DependencyProperty, AnimationTimeline) анимированного объекта.To remove all clocks from a property, use the ApplyAnimationClock(DependencyProperty, AnimationClock) or BeginAnimation(DependencyProperty, AnimationTimeline) method of the animated object. Укажите свойство, которое анимируется как первый параметр, а null в качестве второго.Specify the property being animated as the first parameter, and null as the second. Это приведет к удалению всех часов анимации из свойства.This removes all animation clocks from the property.

  • Чтобы AnimationClock удалить определенное значение из списка часов, Controller используйте свойство ClockControllerобъекта AnimationClock для получения, а затем вызовите Remove метод класса ClockController.To remove a specific AnimationClock from a list of clocks, use the Controller property of the AnimationClock to retrieve a ClockController, then call the Remove method of the ClockController. Обычно это делается в Completed обработчике событий для часов.This is typically done in the Completed event handler for a clock. Обратите внимание, что только корневые часы могут управляться ClockController Controller ; свойство дочернего таймера nullвозвращает.Note that only root clocks can be controlled by a ClockController; the Controller property of a child clock returns null. Обратите внимание, Completed что событие не возникает, если фактическая длительность часов бесконечно.Note also that the Completed event is not raised if the effective duration of the clock is forever. В этом случае пользователь должен определить, когда следует вызывать Remove.In that case, the user must determine when to call Remove.

В основном это проблема для анимации объектов, имеющих длинное время жизни.This is primarily an issue for animations on objects that have a long lifetime. Если объект уничтожается сборщиком мусора, его часы также отключаются и уничтожаются мусором.When an object is garbage collected, its clocks are also disconnected and garbage collected.

Дополнительные сведения об объектах часов см. в разделе Общие сведения о анимации и системе управления временем.For more information about clock objects, see Animation and Timing System Overview.

Применяется к