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.
В основном это проблема для анимации объектов, имеющих длинное время жизни. Когда объект собирается мусор, его часы также отключаются и собирают мусор.
Дополнительные сведения об объектах часов см. в разделе Общие сведения об анимации и системе управления временем.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по