Partage via


DoubleAnimation Classe

Définition

Anime la valeur d’une propriété Double entre deux valeurs cibles à l’aide de l’interpolation linéaire sur une durée spécifiée.

public ref class DoubleAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DoubleAnimation final : Timeline
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class DoubleAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DoubleAnimation : Timeline
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
Héritage
Object Platform::Object IInspectable DependencyObject Timeline DoubleAnimation
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

L’exemple suivant montre comment utiliser DoubleAnimation pour créer un rectangle qui se décolore après son chargement.

<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation
          Storyboard.TargetName="MyAnimatedRectangle"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:3"
          AutoReverse="True" RepeatBehavior="Forever" />
        </Storyboard>
    </StackPanel.Resources>

    <Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
     Width="100" Height="100" Fill="Blue" />

</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub
<Canvas>
    <Canvas.Resources>
        <Storyboard x:Name="myStoryboard">

            <!-- Animate the TranslateTransform's X property
           from 0 to 350, then 50, then 200 over 10 seconds. -->
            <DoubleAnimationUsingKeyFrames
       Storyboard.TargetName="MyAnimatedTranslateTransform"
       Storyboard.TargetProperty="X"
       Duration="0:0:10" EnableDependentAnimation="True">

                <!-- 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>
    </Canvas.Resources>

    <Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
 Width="50" Height="50">
        <Rectangle.RenderTransform>
            <TranslateTransform x:Name="MyAnimatedTranslateTransform" />
        </Rectangle.RenderTransform>
    </Rectangle>

</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub

Remarques

Utilisez DoubleAnimation pour animer la valeur de propriété de toute propriété de dépendance de type Double.

Parfois, vous devez utiliser le ciblage de propriété indirect pour cibler une sous-propriété d’un autre objet qui est la valeur d’une propriété sur la cible. Par exemple, pour animer le composant X d’un RenderTransform d’un UIElement, vous devez référencer certaines des valeurs de propriété d’objet intermédiaires, jusqu’à ce que la dernière étape du chemin de propriété indirect soit véritablement une valeur Double , comme c’est le cas avec TranslateTransform.X. La chaîne correcte à utiliser pour Storyboard.TargetProperty dans cet exemple est « (UIElement.RenderTransform). (TranslateTransform.X) ». Pour plus d’informations sur le ciblage indirect des propriétés et d’autres concepts d’animation de storyboard, consultez Animations de storyboard.

Une DoubleAnimation a généralement au moins une des propriétés From, By ou To définies, mais jamais toutes les trois.

  • À partir uniquement : L’animation passe de la valeur spécifiée par la propriété From à la valeur de base de la propriété animée.
  • De et vers : L’animation passe de la valeur spécifiée par la propriété From à la valeur spécifiée par la propriété To .
  • À partir de et par : L’animation progresse de la valeur spécifiée par la propriété From à la valeur spécifiée par la somme des propriétés From et By .
  • Pour uniquement : L’animation progresse de la valeur de base de la propriété animée ou de la valeur de sortie d’une animation précédente à la valeur spécifiée par la propriété To .
  • Par uniquement : L’animation progresse de la valeur de base de la propriété animée ou de la valeur de sortie d’une animation précédente à la somme de cette valeur et de la valeur spécifiée par la propriété By .

Vous ne pouvez pas animer les valeurs X et Y d’un Point à l’aide d’une doubleanimation, car ces propriétés ne sont pas des propriétés de dépendance (Point est une structure et ne peut pas avoir de propriétés de dépendance).) Au lieu de cela, utilisez PointAnimation pour animer les propriétés de dépendance qui ont une valeur Point .

Vous ne pouvez pas non plus utiliser DoubleAnimation pour animer des valeurs int ou des valeurs d’octets . Au lieu de cela, vous devrez utiliser ObjectAnimationUsingKeyFrames, ce qui ne vous donnera pas de comportement d’interpolation. Vous devrez donc peut-être définir plusieurs images clés pour obtenir une animation relativement fluide. Il n’y a pas beaucoup de propriétés de dépendance liées à l’interface utilisateur qui utilisent des valeurs int ou des valeurs d’octets . Il ne doit donc pas s’agir d’un scénario courant autre que pour les propriétés personnalisées.

Les propriétés From, By ou To d’une DoubleAnimation ne sont pas strictement un Double. Au lieu de cela, il s’agit d’une valeur Nullable pour Double. La valeur par défaut de ces valeurs est null, et non 0. Cette valeur null est la façon dont le système d’animation distingue que vous n’avez pas spécifiquement défini de valeur. Le type des extensions des composants Visual C++ (C++/CX) n’est pas Nullable, par conséquent elles utilisent IReference à la place.

Constructeurs

DoubleAnimation()

Initialise une nouvelle instance de la classe DoubleAnimation.

Propriétés

AutoReverse

Obtient ou définit une valeur qui indique si la chronologie est lue en sens inverse après avoir effectué une itération vers l’avant.

(Hérité de Timeline)
BeginTime

Obtient ou définit l’heure à laquelle cette chronologie doit commencer.

(Hérité de Timeline)
By

Obtient ou définit la quantité totale par laquelle l’animation modifie sa valeur de départ.

ByProperty

Identifie la propriété de dépendance By .

Dispatcher

Obtient le CoreDispatcher auquel cet objet est associé. CoreDispatcher représente une installation qui peut accéder à DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)
Duration

Obtient ou définit la durée de cette chronologie, sans prendre en compte les répétitions.

(Hérité de Timeline)
EasingFunction

Obtient ou définit la fonction d’accélération appliquée à cette animation.

EasingFunctionProperty

Identifie la propriété de dépendance EasingFunction .

EnableDependentAnimation

Obtient ou définit une valeur qui déclare si les propriétés animées considérées comme des animations dépendantes doivent être autorisées à utiliser cette déclaration d’animation.

EnableDependentAnimationProperty

Identifie la propriété de dépendance EnableDependentAnimation .

FillBehavior

Obtient ou définit une valeur qui spécifie le comportement de l’animation une fois qu’elle a atteint la fin de sa période active.

(Hérité de Timeline)
From

Obtient ou définit la valeur de départ de l’animation.

FromProperty

Identifie la propriété de dépendance From .

RepeatBehavior

Obtient ou définit le comportement à répétition de cette chronologie.

(Hérité de Timeline)
SpeedRatio

Obtient ou définit le taux, par rapport à son parent, auquel le moment progresse pour cette chronologie.

(Hérité de Timeline)
To

Obtient ou définit la valeur de fin de l’animation.

ToProperty

Identifie la propriété de dépendance To .

Méthodes

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’applique dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un objet DependencyObject.

(Hérité de DependencyObject)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

Événements

Completed

Se produit lorsque l’objet Storyboard a terminé la lecture.

(Hérité de Timeline)

S’applique à

Voir aussi