Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Timeline.CurrentGlobalSpeedInvalidated événement

 

Date de publication : novembre 2016

Se produit lorsque la vitesse à laquelle progresse pour les modifications de l’horloge de la chronologie.

Espace de noms:   System.Windows.Media.Animation
Assembly:  PresentationCore (dans PresentationCore.dll)

public event EventHandler CurrentGlobalSpeedInvalidated

La vitesse globale actuelle de modifications de l’horloge d’une chronologie dans les circonstances suivantes :

  • L’horloge change de direction en raison de sa chronologie AutoReverse paramètre.

  • L’horloge accélère ou ralentit à cause de sa chronologie AccelerationRatio ou DecelerationRatio les paramètres de propriété.

  • L’horloge est interrompue ou reprise.

  • L’horloge devient inactive ou réactive.

  • Le CurrentGlobalSpeed d’une des modifications du parent de l’horloge.

Le CurrentGlobalSpeedInvalidated événement est utile pour le suivi de la suspension de l’horloge d’une chronologie ; dans votre gestionnaire d’événements, utilisez votre table de montage séquentiel GetCurrentGlobalSpeed méthode ou vérifier l’horloge IsPaused propriété pour déterminer si son horloge est suspendue ; cela comparer une valeur précédemment mise en cache pour déterminer si elle est modifiée.

Le Object paramètre de la EventHandler Gestionnaire d’événements est la chronologie Clock.

Bien que ce gestionnaire d’événements semble être associé à une chronologie, il s’inscrit avec le Clock créé pour cette chronologie. Pour plus d’informations, consultez le vue d’ensemble des événements de minutage.

L’exemple suivant montre comment inscrire le CurrentGlobalSpeedInvalidated événement.

/*

   This example shows how to register for the
   CurrentGlobalSpeedInvalidated event
   using a Timeline. 

*/

using System;
using System.Windows;
using System.Windows.Navigation;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Controls;
using System.Windows.Input;

namespace Microsoft.Samples.Animation.TimingBehaviors
{


    public class TimelineCurrentGlobalSpeedInvalidatedExample : Page {


        private TextBlock currentTimeTextBlock;
        public TimelineCurrentGlobalSpeedInvalidatedExample()
        {

            // Create a name scope.
            NameScope.SetNameScope(this, new NameScope());

            WindowTitle = "GetAnimationBaseValue Example";
            StackPanel myPanel = new StackPanel();
            myPanel.Margin = new Thickness(20);     

            // Create a rectangle.
            Rectangle animatedRectangle = new Rectangle();
            animatedRectangle.Width = 100;
            animatedRectangle.Height = 50;
            animatedRectangle.Margin = new Thickness(50);
            animatedRectangle.Fill = Brushes.Orange;
            animatedRectangle.Stroke = Brushes.Gray;
            animatedRectangle.StrokeThickness = 2;

            // Create a RotateTransform.
            RotateTransform animatedTransform = new RotateTransform();
            animatedTransform.Angle = 0;
            this.RegisterName("animatedTransform", animatedTransform);
            animatedRectangle.RenderTransform = animatedTransform;
            animatedRectangle.RenderTransformOrigin = new Point(0.5,0.5);
            myPanel.Children.Add(animatedRectangle);
            this.Content = myPanel;

            // Create a TextBlock to show the storyboard's current time.
            currentTimeTextBlock = new TextBlock();
            myPanel.Children.Add(currentTimeTextBlock);

            // Animate the RotateTransform's angle using a Storyboard.
            DoubleAnimation angleAnimation = new DoubleAnimation(0,360, TimeSpan.FromSeconds(5));
            angleAnimation.RepeatBehavior = RepeatBehavior.Forever;
            angleAnimation.AutoReverse = true;
            Storyboard.SetTargetName(angleAnimation, "animatedTransform");
            Storyboard.SetTargetProperty(angleAnimation, 
                new PropertyPath(RotateTransform.AngleProperty));

            Storyboard theStoryboard = new Storyboard();
            theStoryboard.Children.Add(angleAnimation);            

            // Register the CurrentGlobalSpeedInvalidated event.
            // You must register for events before you begin 
            // the storyboard.
            angleAnimation.CurrentGlobalSpeedInvalidated += 
                new EventHandler(angleAnimation_CurrentGlobalSpeedInvalidated);

            // Start the storyboard.
            theStoryboard.Begin(animatedRectangle, true);

        }

        private void angleAnimation_CurrentGlobalSpeedInvalidated(object sender, EventArgs e)
        {

            // Sender is the clock that was created for the DoubleAnimation.
            Clock doubleAnimationClock = (Clock)sender;

            // Update the TextBlock with the time of its parent.
            currentTimeTextBlock.Text = doubleAnimationClock.Parent.CurrentTime.ToString();       
        }



    }

}

.NET Framework
Disponible depuis 3.0
Retour au début
Afficher: