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

LinearDoubleKeyFrame, classe

Passe de la valeur Double correspondant à la précédente image clé à sa propre valeur Value en utilisant une opération d'interpolation linéaire.

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 class LinearDoubleKeyFrame : DoubleKeyFrame
<LinearDoubleKeyFrame .../>

Le type LinearDoubleKeyFrame expose les membres suivants.

  NomDescription
Méthode publiqueLinearDoubleKeyFrame()Initialise une nouvelle instance de la classe LinearDoubleKeyFrame.
Méthode publiqueLinearDoubleKeyFrame(Double)Initialise une nouvelle instance de la classe LinearDoubleKeyFrame avec la valeur de fin spécifiée.
Méthode publiqueLinearDoubleKeyFrame(Double, KeyTime)Initialise une nouvelle instance de la classe LinearDoubleKeyFrame avec la valeur de fin et la période de clé spécifiées.
Début

  NomDescription
Propriété publiqueCanFreezeObtient une valeur qui indique la possibilité ou non de rendre un objet non modifiable. (Hérité de Freezable.)
Propriété publiqueDependencyObjectTypeObtient le DependencyObjectType qui encapsule le type CLR de cette instance.  (Hérité de DependencyObject.)
Propriété publiqueDispatcherObtient le Dispatcher associé à DispatcherObject. (Hérité de DispatcherObject.)
Propriété publiqueDispatcher (Hérité de DependencyObject.)
Propriété publiqueIsFrozenObtient une valeur qui indique si l'objet est actuellement modifiable ou pas. (Hérité de Freezable.)
Propriété publiqueIsSealedRécupère une valeur qui indique si cette instance est actuellement sealed (en lecture seule). (Hérité de DependencyObject.)
Propriété publiqueKeyTime Obtient ou définit l'heure à laquelle la valeur cible Value de l'image clé doit être atteinte. (Hérité de DoubleKeyFrame.)
Propriété publiqueValue Obtient ou définit la valeur cible de l'image clé. (Hérité de DoubleKeyFrame.)
Début

  NomDescription
Méthode publiqueCheckAccessDétermine si le thread appelant a accès à ce DispatcherObject. (Hérité de DispatcherObject.)
Méthode publiqueClearValue(DependencyProperty)Efface la valeur de proximité d'une propriété. La propriété à effacer est spécifiée par un identificateur DependencyProperty. (Hérité de DependencyObject.)
Méthode publiqueClearValue(DependencyPropertyKey)Efface la valeur de proximité d'une propriété en lecture seule. La propriété à effacer est spécifiée par un DependencyPropertyKey. (Hérité de DependencyObject.)
Méthode publiqueCloneCrée un clone modifiable de Freezable, en créant des copies complètes des valeurs de l'objet. Lors de la copie des propriétés de dépendance de l'objet, cette méthode copie les expressions (qui risquent de ne plus pouvoir se résoudre) mais pas les animations ou leurs valeurs actuelles. (Hérité de Freezable.)
Méthode protégéeCloneCoreConvertit l'instance en clone (copie complète) du Freezable spécifié à l'aide des valeurs de propriétés (non-animées) de base. (Hérité de Freezable.)
Méthode publiqueCloneCurrentValueCrée un clone modifiable (copie complète) de Freezable en utilisant ses valeurs actuelles. (Hérité de Freezable.)
Méthode protégéeCloneCurrentValueCoreConvertit l'instance en clone modifiable (copie complète) du Freezable spécifié à l'aide des valeurs de propriétés actuelles. (Hérité de Freezable.)
Méthode publiqueCoerceValueForce la valeur de la propriété de dépendance spécifiée. Cette opération est accomplie en appelant toute fonction CoerceValueCallback spécifiée dans les métadonnées de propriété pour la propriété de dépendance comme elle existe sur le DependencyObject appelant. (Hérité de DependencyObject.)
Méthode protégéeCreateInstanceInitialise une nouvelle instance de la classe Freezable. (Hérité de Freezable.)
Méthode protégéeCreateInstanceCoreCrée une nouvelle instance de LinearDoubleKeyFrame. (Substitue Freezable.CreateInstanceCore().)
Méthode publiqueEqualsDétermine si un DependencyObject fourni est équivalent au DependencyObject réel. (Hérité de DependencyObject.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueFreeze()Rend l'objet actuel non modifiable et définit sa propriété IsFrozen sur true. (Hérité de Freezable.)
Méthode protégéeFreezeCoreRend l'objet Freezable non modifiable ou vérifie si celui-ci peut être rendu non modifiable ou pas. (Hérité de Freezable.)
Méthode publiqueGetAnimationBaseValue (Hérité de DependencyObject.)
Méthode publiqueGetAsFrozenCrée une copie figée de Freezable, à l'aide des valeurs de propriété (non-animées) de base. Étant donné que la copie est figée, tous les sous-objets figés sont copiés par référence. (Hérité de Freezable.)
Méthode protégéeGetAsFrozenCoreConvertit l'instance en clone figé du Freezable spécifié à l'aide des valeurs de propriétés (non-animées) de base. (Hérité de Freezable.)
Méthode publiqueGetCurrentValueAsFrozenCrée une copie figée de Freezable à l'aide des valeurs de propriété actuelles. Étant donné que la copie est figée, tous les sous-objets figés sont copiés par référence. (Hérité de Freezable.)
Méthode protégéeGetCurrentValueAsFrozenCoreConvertit l'instance actuelle en un clone figé du Freezable spécifié. Si l'objet comporte des propriétés de dépendance animées, leurs valeurs animées actuelles sont copiées. (Hérité de Freezable.)
Méthode publiqueGetHashCodeObtient un code de hachage pour ce DependencyObject. (Hérité de DependencyObject.)
Méthode publiqueGetLocalValueEnumeratorCrée un énumérateur spécialisé pour déterminer quelles propriétés de dépendance ont des valeurs définies localement sur ce DependencyObject. (Hérité de DependencyObject.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueGetValueRetourne la valeur effective actuelle d'une propriété de dépendance sur cette instance d'un DependencyObject. (Hérité de DependencyObject.)
Méthode publiqueInterpolateValueRetourne la valeur interpolée d'une image clé spécifique en fonction de l'incrément de progression fourni. (Hérité de DoubleKeyFrame.)
Méthode protégéeInterpolateValueCoreInterpole, de manière linéaire, entre la valeur de l'image clé précédente et celle de l'image clé actuelle, à l'aide de l'incrément de progression fourni. (Substitue DoubleKeyFrame.InterpolateValueCore(Double, Double).)
Méthode publiqueInvalidatePropertyRéévalue la valeur effective pour la propriété de dépendance spécifiée (Hérité de DependencyObject.)
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéeOnChangedAppelé lors de la modification de l'objet Freezable actuel. (Hérité de Freezable.)
Méthode protégéeOnFreezablePropertyChanged(DependencyObject, DependencyObject)Garantit que les pointeurs de contexte appropriés sont établis pour un membre de données de type DependencyObjectType qui vient juste d'être défini. (Hérité de Freezable.)
Méthode protégéeOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)Ce membre prend en charge l'infrastructure Windows Presentation Foundation (WPF) et n'est pas conçu pour être directement utilisé à partir du code. (Hérité de Freezable.)
Méthode protégéeOnPropertyChangedSubstitue l'implémentation DependencyObject de OnPropertyChanged pour appeler également tous les gestionnaires Changed en réponse à une propriété de dépendance variable de type Freezable. (Hérité de Freezable.)
Méthode publiqueReadLocalValueRetourne la valeur de proximité d'une propriété de dépendance, si elle existe. (Hérité de DependencyObject.)
Méthode protégéeReadPreambleGarantit que Freezable est accessible à partir d'un thread valide. Les héritiers de Freezable doivent appeler cette méthode au début de toute API lisant les membres de données qui ne sont pas des propriétés de dépendance. (Hérité de Freezable.)
Méthode publiqueSetCurrentValueDéfinit la valeur d'une propriété de dépendance sans modifier sa source de valeur. (Hérité de DependencyObject.)
Méthode publiqueSetValue(DependencyProperty, Object)Définit la valeur de proximité d'une propriété de dépendance, spécifiée par son identificateur de propriété de dépendance. (Hérité de DependencyObject.)
Méthode publiqueSetValue(DependencyPropertyKey, Object)Définit la valeur de proximité d'une propriété de dépendance en lecture seule, spécifiée par l'identificateur DependencyPropertyKey de la propriété de dépendance. (Hérité de DependencyObject.)
Méthode protégéeShouldSerializePropertyRetourne une valeur qui indique si les processus de sérialisation doivent sérialiser la valeur pour la propriété de dépendance fournie. (Hérité de DependencyObject.)
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publiqueVerifyAccessGarantit que le thread appelant a accès à DispatcherObject. (Hérité de DispatcherObject.)
Méthode protégéeWritePostscriptDéclenche l'événement Changed pour Freezable et appelle sa méthode OnChanged. Les classes qui dérivent de Freezable doivent appeler cette méthode à la fin de toute API qui modifie des membres de classe non stockés en tant que propriétés de dépendance. (Hérité de Freezable.)
Méthode protégéeWritePreambleVérifie que le Freezable n'est pas figé et que son accès s'effectue à partir d'un contexte de thread valide. Les héritiers de Freezable doivent appeler cette méthode au début de toute API écrivant les membres de données qui ne sont pas des propriétés de dépendance. (Hérité de Freezable.)
Début

  NomDescription
Événement publicChangedSe produit lorsque Freezable ou un objet qu'il contient est modifié. (Hérité de Freezable.)
Début

  NomDescription
Implémentation d'interface explicitePropriété privéeIKeyFrame.ValueObtient ou définit la valeur associée à une instance KeyTime. (Hérité de DoubleKeyFrame.)
Début

Cette classe est utilisée dans le cadre d'une collection DoubleKeyFrameCollection avec un DoubleAnimationUsingKeyFrames afin d'animer une valeur de la propriété Double en fonction d'un ensemble d'images clés.

Une image clé définit un segment du DoubleAnimationUsingKeyFrames auquel elle appartient. Une valeur Value cible et une période de clé KeyTime sont définies pour chaque image clé. Le KeyTime spécifie l'heure à laquelle la valeur Value de l'image clé doit être atteinte. Une image clé passe de la valeur cible de l'image clé précédente à sa propre valeur cible. Elle démarre à la fin de l'image clé précédente et s'achève au terme de sa propre période de clé.

Les images clés linéaires telles que LinearDoubleKeyFrame créent une interpolation linéaire homogène entre les valeurs.

Cet exemple montre comment animer la valeur d'une propriété qui accepte un Double en utilisant des images clés.

L'exemple suivant déplace un rectangle sur un écran. L'exemple utilise la classe DoubleAnimationUsingKeyFrames pour animer la propriété X d'un TranslateTransform appliqué à un Rectangle. Cette animation, répétée indéfiniment, utilise trois images clés de la manière suivante :

  1. Pendant les trois premières secondes, utilise une instance de la classe LinearDoubleKeyFrame pour déplacer le rectangle le long d'un tracé, à une vitesse constante, de sa position de départ à la position 500. Les images clés linéaires comme LinearDoubleKeyFrame créent une transition linéaire fluide entre les valeurs.

  2. Au bout de la quatrième seconde, utilise une instance de la classe DiscreteDoubleKeyFrame pour déplacer soudainement le rectangle à la position suivante. Les images clés discrètes comme DiscreteDoubleKeyFrame créent des sauts soudains entre les valeurs. Dans cet exemple, le rectangle est à la position de départ, puis apparaît soudainement à la position 500.

  3. Durant les deux dernières secondes, utilise une instance de la classe SplineDoubleKeyFrame pour ramener le rectangle à sa position de départ. Des images clé spline comme SplineDoubleKeyFrame créent une transition variable entre des valeurs en fonction de la valeur de la propriété KeySpline. Dans cet exemple, le rectangle commence par se déplacer lentement, puis accélère de façon exponentielle vers la fin du segment temporel.


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

namespace Microsoft.Samples.KeyFrameExamples
{
    /// <summary>
    /// This example shows how to use the DoubleAnimationUsingKeyFrames class to
    /// animate the position of an object.
    /// Key frame animations enable you to create complex animations 
    /// by specifying multiple destination values
    /// and controlling the animation's interpolation method.
    /// </summary>
    public class AltDoubleAnimationUsingKeyFramesExample : Page
    {
        public AltDoubleAnimationUsingKeyFramesExample()
        {
            Title = "DoubleAnimationUsingKeyFrames Example";
            Background = Brushes.White;
            Margin = new Thickness(20);

            // Create a NameScope for this page so that
            // Storyboards can be used.
            NameScope.SetNameScope(this, new NameScope());

            // Create a rectangle.
            Rectangle aRectangle = new Rectangle();
            aRectangle.Width = 100;
            aRectangle.Height = 100;
            aRectangle.Stroke = Brushes.Black;
            aRectangle.StrokeThickness = 5;

            // Create a Canvas to contain and
            // position the rectangle.
            Canvas containerCanvas = new Canvas();
            containerCanvas.Width = 610;
            containerCanvas.Height = 300;
            containerCanvas.Children.Add(aRectangle);
            Canvas.SetTop(aRectangle, 100);
            Canvas.SetLeft(aRectangle, 10);         

            // Create a TranslateTransform to 
            // move the rectangle.
            TranslateTransform animatedTranslateTransform = 
                new TranslateTransform();
            aRectangle.RenderTransform = animatedTranslateTransform;  

            // Assign the TranslateTransform a name so that
            // it can be targeted by a Storyboard.
            this.RegisterName(
                "AnimatedTranslateTransform", animatedTranslateTransform);

            // Create a DoubleAnimationUsingKeyFrames to
            // animate the TranslateTransform.
            DoubleAnimationUsingKeyFrames translationAnimation 
                = new DoubleAnimationUsingKeyFrames();
            translationAnimation.Duration = TimeSpan.FromSeconds(6);

            // Animate from the starting position to 500
            // over the first second using linear
            // interpolation.
            translationAnimation.KeyFrames.Add(
                new LinearDoubleKeyFrame(
                    500, // Target value (KeyValue)
                    KeyTime.FromTimeSpan(TimeSpan.FromSeconds(3))) // KeyTime
                );

            // Animate from 500 (the value of the previous key frame) 
            // to 400 at 4 seconds using discrete interpolation.
            // Because the interpolation is discrete, the rectangle will appear
            // to "jump" from 500 to 400.
            translationAnimation.KeyFrames.Add(
                new DiscreteDoubleKeyFrame(
                    400, // Target value (KeyValue)
                    KeyTime.FromTimeSpan(TimeSpan.FromSeconds(4))) // KeyTime
                );

            // Animate from 400 (the value of the previous key frame) to 0
            // over two seconds, starting at 4 seconds (the key time of the
            // last key frame) and ending at 6 seconds.
            translationAnimation.KeyFrames.Add(
                new SplineDoubleKeyFrame(
                    0, // Target value (KeyValue)
                    KeyTime.FromTimeSpan(TimeSpan.FromSeconds(6)), // KeyTime
                    new KeySpline(0.6,0.0,0.9,0.0) // KeySpline
                    )
                );

            // Set the animation to repeat forever. 
            translationAnimation.RepeatBehavior = RepeatBehavior.Forever;

            // Set the animation to target the X property
            // of the object named "AnimatedTranslateTransform."
            Storyboard.SetTargetName(translationAnimation, "AnimatedTranslateTransform");
            Storyboard.SetTargetProperty(
                translationAnimation, new PropertyPath(TranslateTransform.XProperty));

            // Create a storyboard to apply the animation.
            Storyboard translationStoryboard = new Storyboard();
            translationStoryboard.Children.Add(translationAnimation);

            // Start the storyboard after the rectangle loads.
            aRectangle.Loaded += delegate(object sender, RoutedEventArgs e)
            {
                translationStoryboard.Begin(this);
            };

            Content = containerCanvas;
        }

    }
}



<!-- This example shows how to use the DoubleAnimationUsingKeyFrames to 
     animate the position of an object. 
     Key frame animations enable you to create complex animations 
     by specifying multiple destination values
     and controlling the animation's interpolation method.
-->
<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="DoubleAnimationUsingKeyFrames Example"
  Background="White" Margin="20">       
  <Canvas Width="610" Height="300">

    <!-- The position of this rectangle is animated using 
         a key frame animation. -->
    <Rectangle 
      Canvas.Top="100"
      Canvas.Left="10"
      Height="100"
      Width="100"
      Stroke="Black"
      StrokeThickness="5">
      <Rectangle.RenderTransform>
        <TranslateTransform x:Name="AnimatedTranslateTransform" />
      </Rectangle.RenderTransform>

      <Rectangle.Triggers>
        <EventTrigger RoutedEvent="Rectangle.Loaded">
          <BeginStoryboard>
            <Storyboard>

              <!-- Animate the TranslateTransform.X property using 3 KeyFrames
                   which animates the rectangle along a straight line. 
                   This animation repeats indefinitely. -->
              <DoubleAnimationUsingKeyFrames
                Storyboard.TargetName="AnimatedTranslateTransform"
                Storyboard.TargetProperty="X"
                Duration="0:0:6"
                RepeatBehavior="Forever">

                <!-- Using a LinearDoubleKeyFrame, the rectangle moves 
                     steadily from its starting position to 500 over 
                     the first 3 seconds.  -->
                <LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />

                <!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly 
                     appears at 400 after the fourth second of the animation. -->
                <DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />

                <!-- Using a SplineDoubleKeyFrame, the rectangle moves 
                     back to its starting point. The
                     animation starts out slowly at first and then speeds up. 
                     This KeyFrame ends after the 6th
                     second. -->
                <SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
              </DoubleAnimationUsingKeyFrames>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Rectangle.Triggers>
    </Rectangle>
  </Canvas>
</Page>


Pour obtenir l'exemple complet, consultez Animation d'image clé, exemple.

Pour des raisons de cohérence avec d'autres exemples d'animation, les versions de code de cet exemple utilisent un objet Storyboard pour appliquer les DoubleAnimationUsingKeyFrames. Autrement, lors de l'application d'une seule animation dans le code, il est plus simple d'utiliser la méthode BeginAnimation qu'un Storyboard. Pour obtenir un exemple, consultez Comment : animer une propriété sans utiliser de storyboard.

.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

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

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.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft