FrameworkElement.BeginStoryboard Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Começa a sequência de ações contida no storyboard fornecido.
Sobrecargas
| Name | Description |
|---|---|
| BeginStoryboard(Storyboard) |
Começa a sequência de ações contidas no storyboard fornecido. |
| BeginStoryboard(Storyboard, HandoffBehavior) |
Começa a sequência de ações contida no storyboard fornecido, com opções especificadas para o que deve acontecer se a propriedade já estiver animada. |
| BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
Inicia a sequência de ações contida no storyboard fornecido, com o estado especificado para controlo da animação após o seu início. |
BeginStoryboard(Storyboard)
Começa a sequência de ações contidas no storyboard fornecido.
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)
Parâmetros
- storyboard
- Storyboard
O storyboard para começar.
Exemplos
O exemplo seguinte recupera um Storyboard dos recursos e depois executa-o Storyboard quando um evento interno é tratado por classe.
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
Observações
A maioria dos cenários de animação típicos não utiliza este método. Normalmente, cria-se o Storyboard elemento or BeginStoryboard na marcação, e depois coloca-se estes como EventTrigger conteúdo num elemento. Quando é ativado pelo evento, a animação executa-se. A maioria dos aspetos de controlo de um Storyboard pode ser abordada por propriedades expostas na margem.
Para as assinaturas que não utilizam o isControllableparâmetro , ou quando esse parâmetro é especificado false, os relógios de linha temporal associados à animação são removidos assim que a animação atinge o período de "Preenchimento". Portanto, a animação não pode ser reiniciada após uma única execução. Controlar uma animação também exige que o storyboard tenha uma Diretiva x:Name ou seja acessível por referência no código.
Aplica-se a
BeginStoryboard(Storyboard, HandoffBehavior)
Começa a sequência de ações contida no storyboard fornecido, com opções especificadas para o que deve acontecer se a propriedade já estiver animada.
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)
Parâmetros
- storyboard
- Storyboard
O storyboard para começar.
- handoffBehavior
- HandoffBehavior
Um valor da enumeração que descreve o comportamento a usar se uma propriedade descrita no storyboard já estiver animada.
Exemplos
O exemplo seguinte recupera um Storyboard dos recursos e depois executa-o Storyboard quando um evento interno é tratado por classe.
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
Observações
A maioria dos cenários de animação típicos não utiliza este método. Normalmente, cria-se o Storyboard elemento or BeginStoryboard na marcação, e depois coloca-se estes como EventTrigger conteúdo num elemento. Quando é ativado pelo evento, a animação executa-se. A maioria dos aspetos de controlo de um Storyboard pode ser abordada por propriedades expostas na margem.
Para as assinaturas que não utilizam o isControllableparâmetro , ou quando esse parâmetro é especificado false, os relógios de linha temporal associados à animação são removidos assim que a animação atinge o período de "Preenchimento". Portanto, a animação não pode ser reiniciada após uma única execução. Controlar uma animação também exige que o storyboard tenha uma Diretiva x:Name ou seja acessível por referência no código.
O comportamento de handoff pode ser especificado como um atributo de BeginStoryboard.
Usando o Compose HandoffBehavior
Quando aplica um Storyboard, , ou AnimationTimeline a uma propriedade usando ,AnimationClockCompose quaisquer HandoffBehavior objetos anteriormente associados a essa propriedade continuam a consumir recursos do sistema; o sistema de temporização não remove automaticamente Clockos relógios.
Para evitar problemas de desempenho ao aplicar um grande número de relógios usando Compose, deve remover os relógios de composição da propriedade animada depois de terminarem. Existem várias formas de remover um relógio:
Para remover todos os relógios de uma propriedade, use o método ApplyAnimationClock(DependencyProperty, AnimationClock) ou BeginAnimation(DependencyProperty, AnimationTimeline) do objeto animado. Especifique a propriedade que está sendo animada como o primeiro parâmetro e
nullcomo o segundo. Isto remove todos os relógios de animação da propriedade.Para remover um específico AnimationClock de uma lista de relógios, use a Controller propriedade do AnimationClock para recuperar um ClockControllere, em seguida, chame o Remove método do ClockController. Isso geralmente é feito no manipulador de eventos de um Completed relógio. Note que apenas os relógios raiz podem ser controlados por um ClockController; a Controller propriedade de um relógio filho devolve
null. Note também que o Completed evento não é elevado se a duração efetiva do relógio for para sempre. Nesse caso, o utilizador deve determinar quando chamar Remove.
Isso é principalmente um problema para animações em objetos que têm uma longa vida útil. Quando um objeto é recolhido com lixo, os seus relógios também são desligados e recolhidos pelo lixo.
Para obter mais informações sobre objetos de relógio, consulte Visão geral do sistema de animação e cronometragem.
Aplica-se a
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Inicia a sequência de ações contida no storyboard fornecido, com o estado especificado para controlo da animação após o seu início.
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)
Parâmetros
- storyboard
- Storyboard
O storyboard para começar.
- handoffBehavior
- HandoffBehavior
Um valor da enumeração que descreve o comportamento a usar se uma propriedade descrita no storyboard já estiver animada.
- isControllable
- Boolean
Declara se a animação é controlável (pode ser pausada) depois de iniciada.
Observações
A maioria dos cenários de animação típicos não utiliza este método. Normalmente, cria-se o Storyboard elemento or BeginStoryboard na marcação, e depois coloca-se estes como EventTrigger conteúdo num elemento. Quando é ativado pelo evento, a animação executa-se. A maioria dos aspetos de controlo de um Storyboard pode ser abordada por propriedades expostas na margem.
Para as assinaturas que não utilizam o isControllableparâmetro , ou quando esse parâmetro é especificado false, os relógios de linha temporal associados à animação são removidos assim que a animação atinge o período de "Preenchimento". Portanto, a animação não pode ser reiniciada após uma única execução. Controlar uma animação também exige que o storyboard tenha uma Diretiva x:Name ou seja acessível por referência no código.
O comportamento de handoff pode ser especificado como um atributo de BeginStoryboard.
Usando o Compose HandoffBehavior
Quando aplica um Storyboard, , ou AnimationTimeline a uma propriedade usando ,AnimationClockCompose quaisquer HandoffBehavior objetos anteriormente associados a essa propriedade continuam a consumir recursos do sistema; o sistema de temporização não remove automaticamente Clockos relógios.
Para evitar problemas de desempenho ao aplicar um grande número de relógios usando Compose, deve remover os relógios de composição da propriedade animada depois de terminarem. Existem várias formas de remover um relógio:
Para remover todos os relógios de uma propriedade, use o método ApplyAnimationClock(DependencyProperty, AnimationClock) ou BeginAnimation(DependencyProperty, AnimationTimeline) do objeto animado. Especifique a propriedade que está sendo animada como o primeiro parâmetro e
nullcomo o segundo. Isto remove todos os relógios de animação da propriedade.Para remover um específico AnimationClock de uma lista de relógios, use a Controller propriedade do AnimationClock para recuperar um ClockControllere, em seguida, chame o Remove método do ClockController. Isso geralmente é feito no manipulador de eventos de um Completed relógio. Note que apenas os relógios raiz podem ser controlados por um ClockController; a Controller propriedade de um relógio filho devolve
null. Note também que o Completed evento não é elevado se a duração efetiva do relógio for para sempre. Nesse caso, o utilizador deve determinar quando chamar Remove.
Isso é principalmente um problema para animações em objetos que têm uma longa vida útil. Quando um objeto é recolhido com lixo, os seus relógios também são desligados e recolhidos pelo lixo.
Para obter mais informações sobre objetos de relógio, consulte Visão geral do sistema de animação e cronometragem.