Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Timeline.CurrentStateInvalidated, événement

Se produit lorsque la propriété CurrentState du Clock de la chronologie est mise à jour.

Espace de noms :  System.Windows.Media.Animation
Assembly :  PresentationCore (dans PresentationCore.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public event EventHandler CurrentStateInvalidated
<object CurrentStateInvalidated="EventHandler" .../>

Utilisez l'événement CurrentStateInvalidated pour être notifié en cas de démarrage, d'arrêt ou de remplissage du Clock d'une chronologie.

La suspension d'un Clock ne modifie pas son CurrentState. Utilisez l'événement CurrentGlobalSpeedInvalidated pour être notifié en cas de suspension de l'horloge.

Même si cet événement se produit lorsque le ClockState devient non valide, cela ne signifie pas pour autant que le ClockState a changé : un Clock qui passe de Active à Filling et revient à Active au cours d'un même battement va déclencher cet événement, mais sa propriété CurrentState ne change pas dans les faits.

Le paramètre Object du gestionnaire d'événements EventHandler correspond au Clock qui a été créé pour cette chronologie.

Même si ce gestionnaire d'événements semble être associé à une chronologie, il s'inscrit en fait avec le Clock créé pour la chronologie en question. Pour plus d'informations, consultez Vue d'ensemble des événements de minutage.

L'événement CurrentStateInvalidated d'une horloge se produit lorsque son CurrentState devient non valide, lorsque l'horloge démarre ou s'arrête, par exemple. Vous pouvez inscrire directement cet événement en utilisant Clock, ou vous pouvez effectuer cette opération en utilisant Timeline.

Dans l'exemple suivant, un Storyboard et deux objets DoubleAnimation sont utilisés pour animer la largeur de deux rectangles. L'événement CurrentStateInvalidated est utilisé pour écouter les modifications de l'état de l'horloge.


<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  x:Class="Microsoft.Samples.Animation.TimingBehaviors.StateExample"
  Background="LightGray">
  <StackPanel Margin="20">

    <TextBlock 
      Name="ParentTimelineStateTextBlock"></TextBlock>
    <TextBlock 
      Name="Animation1StateTextBlock"></TextBlock>
    <Rectangle 
      Name="Rectangle01"
      Width="100" Height="50" Fill="Orange" />    
    <TextBlock Name="Animation2StateTextBlock"></TextBlock>
    <Rectangle 
      Name="Rectangle02"
      Width="100" Height="50" Fill="Gray" />  

    <Button Content="Start Animations" Margin="20">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard RepeatBehavior="2x" AutoReverse="True"
              CurrentStateInvalidated="parentTimelineStateInvalidated" >
              <DoubleAnimation
                Storyboard.TargetName="Rectangle01"
                Storyboard.TargetProperty="Width"
                From="10" To="200" Duration="0:0:9"
                BeginTime="0:0:1" 
                CurrentStateInvalidated="animation1StateInvalidated"/>
              <DoubleAnimation
                Storyboard.TargetName="Rectangle02"
                Storyboard.TargetProperty="Width"
                From="10" To="200" Duration="0:0:8"
                BeginTime="0:0:1" 
                CurrentStateInvalidated="animation2StateInvalidated" />            
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>
    </Button>


  </StackPanel>
</Page>




Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Media.Animation

Namespace Microsoft.Samples.Animation.TimingBehaviors

	Partial Public Class StateExample
		Inherits Page

		Private Sub parentTimelineStateInvalidated(ByVal sender As Object, ByVal args As EventArgs)
			Dim myClock As Clock = CType(sender, Clock)
			ParentTimelineStateTextBlock.Text += myClock.CurrentTime.ToString() & ":" & myClock.CurrentState.ToString() & " "
		End Sub

		Private Sub animation1StateInvalidated(ByVal sender As Object, ByVal args As EventArgs)

			Dim myClock As Clock = CType(sender, Clock)

			Animation1StateTextBlock.Text += myClock.Parent.CurrentTime.ToString() & ":" & myClock.CurrentState.ToString() & " "
		End Sub

		Private Sub animation2StateInvalidated(ByVal sender As Object, ByVal args As EventArgs)

			Dim myClock As Clock = CType(sender, Clock)
			Animation2StateTextBlock.Text += myClock.Parent.CurrentTime.ToString() & ":" & myClock.CurrentState.ToString() & " "
		End Sub
	End Class
End Namespace



using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;

namespace Microsoft.Samples.Animation.TimingBehaviors
{

    public partial class StateExample : Page
    {        

        private void parentTimelineStateInvalidated(object sender, EventArgs args)
        {
            Clock myClock = (Clock)sender;
            ParentTimelineStateTextBlock.Text += 
                myClock.CurrentTime.ToString() + ":" 
                + myClock.CurrentState.ToString() + " ";        
        }

        private void animation1StateInvalidated(object sender, EventArgs args)
        {

            Clock myClock = (Clock)sender;

            Animation1StateTextBlock.Text += 
                myClock.Parent.CurrentTime.ToString() + ":" 
                + myClock.CurrentState.ToString() + " ";     
        }

        private void animation2StateInvalidated(object sender, EventArgs args)
        {

            Clock myClock = (Clock)sender;
            Animation2StateTextBlock.Text += 
                myClock.Parent.CurrentTime.ToString() + ":" 
                + myClock.CurrentState.ToString() + " ";                 
        }
    }
}


L'illustration suivante montre les différents états des animations au cours de l'avancement de la chronologie parente (Table de montage séquentiel).

États d'horloge pour une table de montage séquentiel avec deux animations

Le tableau suivant répertorie les moments où l'événement de Animation1CurrentStateInvalidated se déclenche :

Délai (secondes)

1

10

19

21

30

39

État

Active

Active

Arrêté

Active

Active

Arrêté

Le tableau suivant répertorie les moments où l'événement de Animation2CurrentStateInvalidated se déclenche :

Délai (secondes)

1

9

11

19

21

29

31

39

État

Active

Remplissage

Active

Arrêté

Active

Remplissage

Active

Arrêté

Notez que l'événement de Animation1CurrentStateInvalidated se déclenche dans un délai de 10 secondes bien que son état reste Active. Cela s'explique par le fait que son état a changé dans un délai de 10 secondes, mais il est passé de Active à Filling puis il est repassé à Active dans le même battement.

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft