FrameworkElement.BeginStoryboard Метод

Определение

Начинает последовательность действий, содержащихся в предоставленной раскадровке.

Перегрузки

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

Комментарии

В большинстве типичных сценариев анимации этот метод не используется. Как правило, элемент или BeginStoryboard создается Storyboard в разметке, а затем помещаем его в качестве содержимого 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

Комментарии

В большинстве типичных сценариев анимации этот метод не используется. Как правило, элемент или BeginStoryboard создается Storyboard в разметке, а затем помещаем его в качестве содержимого EventTrigger в элемент. После активации событием запускается анимация. Большинство аспектов Storyboard элемента управления можно решить с помощью свойств, предоставляемых в разметке.

Для сигнатур, которые не используют isControllableпараметр , или если указан falseэтот параметр, временная шкала часы, связанные с анимацией, удаляются, как только анимация достигает периода "Заливка". Поэтому анимацию нельзя перезапустить после выполнения один раз. Для управления анимацией также требуется, чтобы раскадровка была директива x:Name или была доступна по ссылке в коде.

Поведение передачи можно указать как атрибут .BeginStoryboard

Использование compose HandoffBehavior

При применении к свойству , или с помощьюHandoffBehaviorCompose все объекты, ранее связанные с этим свойством, Clock продолжают потреблять системные ресурсы; система синхронизации не удаляет часы автоматически.AnimationClockAnimationTimelineStoryboard

Чтобы избежать проблем с производительностью при применении большого количества часов с помощью Compose, следует удалить часы создания из анимированного свойства после их завершения. Удалить часы можно несколькими способами.

  • Чтобы удалить все часы из свойства, используйте метод ApplyAnimationClock(DependencyProperty, AnimationClock) или BeginAnimation(DependencyProperty, AnimationTimeline) анимированного объекта. Укажите в качестве первого параметра анимируемое свойство, а в качестве второго параметра — null. При этом удаляются все часы анимации из свойства .

  • Чтобы удалить определенный AnimationClock из списка часов, используйте свойствоController объекта AnimationClock для извлечения ClockController, а затем вызовите метод Remove объекта ClockController. Обычно это делается в обработчике событий 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

Объявляет, является ли анимация управляемой после запуска (можно ли ее приостановить).

Комментарии

В большинстве типичных сценариев анимации этот метод не используется. Как правило, элемент или BeginStoryboard создается Storyboard в разметке, а затем помещаем его в качестве содержимого EventTrigger в элемент. После активации событием запускается анимация. Большинство аспектов Storyboard элемента управления можно решить с помощью свойств, предоставляемых в разметке.

Для сигнатур, которые не используют isControllableпараметр , или если указан falseэтот параметр, временная шкала часы, связанные с анимацией, удаляются, как только анимация достигает периода "Заливка". Поэтому анимацию нельзя перезапустить после выполнения один раз. Для управления анимацией также требуется, чтобы раскадровка была директива x:Name или была доступна по ссылке в коде.

Поведение передачи можно указать как атрибут .BeginStoryboard

Использование compose HandoffBehavior

При применении к свойству , или с помощьюHandoffBehaviorCompose все объекты, ранее связанные с этим свойством, Clock продолжают потреблять системные ресурсы; система синхронизации не удаляет часы автоматически.AnimationClockAnimationTimelineStoryboard

Чтобы избежать проблем с производительностью при применении большого количества часов с помощью Compose, следует удалить часы создания из анимированного свойства после их завершения. Удалить часы можно несколькими способами.

  • Чтобы удалить все часы из свойства, используйте метод ApplyAnimationClock(DependencyProperty, AnimationClock) или BeginAnimation(DependencyProperty, AnimationTimeline) анимированного объекта. Укажите в качестве первого параметра анимируемое свойство, а в качестве второго параметра — null. При этом удаляются все часы анимации из свойства .

  • Чтобы удалить определенный AnimationClock из списка часов, используйте свойствоController объекта AnimationClock для извлечения ClockController, а затем вызовите метод Remove объекта ClockController. Обычно это делается в обработчике событий Completed для часов. Обратите внимание, что только корневые часы могут управляться с помощью ClockController; Controller свойство дочерних часов возвращает null. Обратите также внимание, что Completed событие не возникает, если действимая продолжительность часов навсегда. В этом случае пользователь должен определить, когда следует вызывать Remove.

В основном это проблема для анимации объектов, имеющих длинное время жизни. Когда объект собирается мусор, его часы также отключаются и собирают мусор.

Дополнительные сведения об объектах часов см. в разделе Общие сведения об анимации и системе управления временем.

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