FrameworkElement.BeginStoryboard Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicia a sequência de ações contidas no storyboard fornecido.
Sobrecargas
BeginStoryboard(Storyboard) |
Inicia a sequência de ações que estão contidas no storyboard fornecido. |
BeginStoryboard(Storyboard, HandoffBehavior) |
Inicia a sequência de ações contida no storyboard fornecido, com opções especificadas para o que acontece se a propriedade já for animada. |
BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
Inicia a sequência de ações contidas no storyboard fornecido, com o estado especificado para o controle da animação depois que ela é iniciada. |
BeginStoryboard(Storyboard)
Inicia a sequência de ações que estão 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 a ser iniciado.
Exemplos
O exemplo a seguir recupera um Storyboard de recursos e, em seguida, executa quando Storyboard um evento interno é tratado de 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
Comentários
A maioria dos cenários de animação típicos não usa esse método. Normalmente, você cria o Storyboard elemento ou BeginStoryboard na marcação e os coloca como o EventTrigger conteúdo em um elemento. Quando disparada pelo evento, a animação é executada. A maioria dos aspectos de controle de um Storyboard pode ser abordada por propriedades expostas na marcação.
Para as assinaturas que não usam o isControllable
parâmetro , ou quando esse parâmetro é especificadofalse
, os relógios linha do tempo associados à animação são removidos assim que a animação atinge o período "Preenchimento". Portanto, a animação não pode ser reiniciada após a execução uma vez. Controlar uma animação também requer que o storyboard tenha uma Diretiva x:Name ou seja acessível por referência no código.
Aplica-se a
BeginStoryboard(Storyboard, HandoffBehavior)
Inicia a sequência de ações contida no storyboard fornecido, com opções especificadas para o que acontece se a propriedade já for 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 a ser iniciado.
- handoffBehavior
- HandoffBehavior
Um valor de enumeração que descreve o comportamento a ser usado se uma propriedade descrita no storyboard já for animada.
Exemplos
O exemplo a seguir recupera um Storyboard de recursos e, em seguida, executa quando Storyboard um evento interno é tratado de 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
Comentários
A maioria dos cenários de animação típicos não usa esse método. Normalmente, você cria o Storyboard elemento ou BeginStoryboard na marcação e os coloca como o EventTrigger conteúdo em um elemento. Quando disparada pelo evento, a animação é executada. A maioria dos aspectos de controle de um Storyboard pode ser abordada por propriedades expostas na marcação.
Para as assinaturas que não usam o isControllable
parâmetro , ou quando esse parâmetro é especificadofalse
, os relógios linha do tempo associados à animação são removidos assim que a animação atinge o período "Preenchimento". Portanto, a animação não pode ser reiniciada após a execução uma vez. Controlar uma animação também requer que o storyboard tenha uma Diretiva x:Name ou seja acessível por referência no código.
O comportamento de entrega pode ser especificado como um atributo de BeginStoryboard.
Usando o HandoffBehavior de composição
Quando você aplica um Storyboard, AnimationTimelineou AnimationClock a uma propriedade usando o , todos Clock os ComposeHandoffBehaviorobjetos anteriormente associados a essa propriedade continuam a consumir recursos do sistema; o sistema de tempo não remove os relógios automaticamente.
Para evitar problemas de desempenho ao aplicar um grande número de relógios usando Compose, você deve remover relógios de composição da propriedade animada depois que eles forem concluídos. Há várias maneiras de remover um relógio:
Para remover todos os relógios de uma propriedade, use o ApplyAnimationClock(DependencyProperty, AnimationClock) método ou BeginAnimation(DependencyProperty, AnimationTimeline) do objeto animado. Especifique a propriedade que está sendo animada como o primeiro parâmetro e
null
como a segunda. Isso 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. Normalmente, isso é feito no Completed manipulador de eventos de um relógio. Observe que somente relógios raiz podem ser controlados por um ClockController; a Controller propriedade de um relógio filho retorna
null
. Observe também que o Completed evento não será gerado se a duração efetiva do relógio for para sempre. Nesse caso, o usuário deve determinar quando chamar Remove.
Isso é basicamente um problema para animações em objetos que têm um longo tempo de vida. Quando um objeto é coletado, seus relógios também são desconectados e o lixo é coletado.
Para obter mais informações sobre objetos de relógio, consulte Visão geral do sistema de animação e tempo.
Aplica-se a
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Inicia a sequência de ações contidas no storyboard fornecido, com o estado especificado para o controle da animação depois que ela é iniciada.
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 a ser iniciado.
- handoffBehavior
- HandoffBehavior
Um valor de enumeração que descreve o comportamento a ser usado se uma propriedade descrita no storyboard já for animada.
- isControllable
- Boolean
Declara se a animação é controlável (pode estar em pausa) depois que ela é iniciada.
Comentários
A maioria dos cenários de animação típicos não usa esse método. Normalmente, você cria o Storyboard elemento ou BeginStoryboard na marcação e os coloca como o EventTrigger conteúdo em um elemento. Quando disparada pelo evento, a animação é executada. A maioria dos aspectos de controle de um Storyboard pode ser abordada por propriedades expostas na marcação.
Para as assinaturas que não usam o isControllable
parâmetro , ou quando esse parâmetro é especificadofalse
, os relógios linha do tempo associados à animação são removidos assim que a animação atinge o período "Preenchimento". Portanto, a animação não pode ser reiniciada após a execução uma vez. Controlar uma animação também requer que o storyboard tenha uma Diretiva x:Name ou seja acessível por referência no código.
O comportamento de entrega pode ser especificado como um atributo de BeginStoryboard.
Usando o HandoffBehavior de composição
Quando você aplica um Storyboard, AnimationTimelineou AnimationClock a uma propriedade usando o , todos Clock os ComposeHandoffBehaviorobjetos anteriormente associados a essa propriedade continuam a consumir recursos do sistema; o sistema de tempo não remove os relógios automaticamente.
Para evitar problemas de desempenho ao aplicar um grande número de relógios usando Compose, você deve remover relógios de composição da propriedade animada depois que eles forem concluídos. Há várias maneiras de remover um relógio:
Para remover todos os relógios de uma propriedade, use o ApplyAnimationClock(DependencyProperty, AnimationClock) método ou BeginAnimation(DependencyProperty, AnimationTimeline) do objeto animado. Especifique a propriedade que está sendo animada como o primeiro parâmetro e
null
como a segunda. Isso 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. Normalmente, isso é feito no Completed manipulador de eventos de um relógio. Observe que somente relógios raiz podem ser controlados por um ClockController; a Controller propriedade de um relógio filho retorna
null
. Observe também que o Completed evento não será gerado se a duração efetiva do relógio for para sempre. Nesse caso, o usuário deve determinar quando chamar Remove.
Isso é basicamente um problema para animações em objetos que têm um longo tempo de vida. Quando um objeto é coletado, seus relógios também são desconectados e o lixo é coletado.
Para obter mais informações sobre objetos de relógio, consulte Visão geral do sistema de animação e tempo.
Aplica-se a
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de