Cet article fait partie d’une série d’articles sur le développement Windows Phone. Il s’agit d’une traduction des articles se trouvant sur la MSDN.
Bien débuter et fondamentaux
Visuels et média
Travailler avec les données
Sondes et autres fonctionnalités spécifiques au téléphone
Avec Silverlight pour Windows Phone 7, les animations peuvent améliorer vos applications en y ajoutant de l’interactivité et du mouvement. En animant une couleur de fond ou en appliquant une transformation animée, vous pouvez créer des transitions d’écrans spectaculaires ou fournir des repères visuels utiles. Ce tutoriel vous montre comment créer des animations de base en changeant les valeurs d’une propriété et en utilisant des images clés (Key-Frames)
Ce tutoriel contient les sections suivantes :
Animation d’une propriété de type Double Animation d’une propriété de type Color Démarrage, Arrêt, Pause, Reprise Animation par l’utilisation de Key-Frames Animation par l’utilisation des Easing Functions
Remarque
Les exemples interactifs de ce tutoriel utilisent Silverlight qui est exécuté sur le navigateur pour simuler le comportement de Silverlight pour Windows Phone. Le comportement actuel peut être visiblement différent dans l’émulateur ou sur un téléphone Windows Phone.
Les animations en Silverlight pour Windows Phone sont créées en animant les valeurs des propriétés de leurs objets. Par exemple, vous pouvez animer les propriétés Width et Rectangle, l’angle d’un RotateTransform, ou la valeur d’une couleur d’un contrôle Button. Dans l’exemple suivant, la propriété Opacity est animée. Pour essayer cet exemple, cliquez sur le Rectangle pour le voir se fondre et disparaitre.
C#
Visual Basic
Les sections suivantes parlent des étapes d’animations sur la propriété Opacity et examinent le code XAML qui est utilisé pour chaque étape.
Identifier la propriété à animer
Dans cet exemple, vous animez la propriété Opacity d’un Rectangle. Vous n’avez pas à déclarer la propriété que vous voulez animer sur l’objet lui-même. Cependant, en général vous nommez l’objet que vous voulez animer. Nommer l’objet rend plus facile de spécifier quel objet sera visé par l’animation. Le XAML suivant montre comment nommer le Rectangle.
Créer un Storyboard et en faire une ressource
Un StoryBoard est un conteneur dans lequel vous mettez les objets à animer. Vous devez construire une ressource StoryBoard qui est disponible pour l’objet que vous voulez animer. Le XAML suivant montre comment construire une ressource StoryBoard de l’élément racine qui est un StackPanel.
Ajout d’une animation d’objet dans le storyboard
Cet exemple utilise l’objet DoubleAnimation parce que la valeur de la propriété que vous animez (Opacity) utilise un double. Un objet animation spécifie ce qui est animé et comment l’animation se comporte. Le XAML suivant montre comment l’objet DoubleAnimation est ajouté au StoryBoard.
L’objet DoubleAnimation spécifie l’animation suivante :
Démarrer l’animation
Une manière commune de démarrer une animation est une réponse à un évènement. Dans cet exemple, l’évènement MouseLeftButtonUp est utilisé pour démarrer l’animation quand l’utilisateur touche le Rectangle.
Le Storyboard est démarré en utilisant la méthode Begin().
Vous pouvez utiliser le code C# au lieu du XAML pour définir une animation. Pour voir un exemple, allez à la section Vue d’ensemble d’une Animation dans la librairie MSDN.
L’exemple précédent nous a montré comment animer une propriété qui utilisait une valeur de type Double. Et que faire si vous voulez animer un type Color ?
Silverlight pour Windows Phone fourni des objets d’animation qui sont utilisés pour animer d’autres types de valeurs. Les objets suivants animent respectivement les propriétés de type Double, Color et Point :
Vous pouvez aussi animer les propriétés qui utilisent des objets. Pour plus d’informations, voir la section Animations avancées.
L’exemple suivant montre comment créer un objet ColorAnimation. Pour essayer cet exemple, cliquez sur le Rectangle pour changer la couleur de fond du Canvas de rouge à vert sur une période de 4 secondes.
XAML
L’exemple précédant nous a montré comment démarrer une animation en utilisant la méthode Begin(). Le Storyboard aussi possède les méthodes Stop(), Pause(), et Resume() qui peuvent être utilisées pour contrôler une animation. L’exemple suivant créé quatre contrôles Button qui permettent à l’utilisateur de contrôler l’animation d’une Ellipse sur l’écran. Pour essayer cet exemple, cliquez sur les boutons et regardez comment l’animation se comporte.
Jusqu’à maintenant, les exemples dans ce tutoriel ont montré les animations entre 2 valeurs. (Elles sont appelées les animations From/To/By) Les animations Key-Frames vous laissent utiliser plus de deux valeurs cibles et contrôlent la méthode d’interpolation d’une animation (plus précisément, en utilisant la propriété KeySpline), vous pouvez contrôler l’accélération d’une animation. L’exemple suivant montre comment utiliser une animation key-frame pour animer la propriété Height d’un Rectangle. Pour essayer cet exemple, cliquez sur le Rectangle pour voir l’effet attendu.
Le XAML suivant inclut trois Key-Frames. Chaque key-frame spécifie une valeur animée pour un certain temps. L’animation entière prend donc 1,5 seconde.
Pour en apprendre plus sur les « key splines » et les courbes de Bézier, exécutez cet exemple Windows Presentation Foundation ou allez voir à la section Key-Frame Animations dans la librairie MSDN.
Les Easing Functions vous permettent d’appliquer des formules de mathématiques personnalisées pour votre animation. Par exemple, vous aimeriez qu’un objet rebondisse ou se comporte comme s’il était sur ressort. Vous pouvez utiliser les animations de type Key-Frame ou même From/To/By pour approximer ces effets, mais cela prendrait une somme significative de temps et de travail, et l’animation serait moins efficace qu’en utilisant une formule mathématique.
Outre le fait de créer votre propre Easing Function en implémentant l’interface IEasingFunction, vous pouvez utiliser une des plusieurs Easing Functions fournies par le runtime pour créer des effets communs. L’exemple suivant montre les Easing Function qui sont fournies avec le runtime. Sélectionnez une Easing Function dans la liste déroulante, définissez ses propriétés, puis exécutez l’animation. Le code XAML pour l’animation est affiché sur le coin inférieur droit de l’exemple.
L’exemple suivant montre comment utiliser une animation Key Frame pour animer la hauteur (Height) d’un Rectangle. Pour essayer cet exemple, cliquez sur le Rectangle pour voir l’effet.
Ci-dessous une liste des Easing Functions démontrées dans l’exemple ci-dessus avec un rapide résumé de ce qu’elles font :
Dans l’exemple précédent, les Easing Functions sont appliquées pour une animation From/To/By. Vous pouvez aussi appliquer ces Easing Functions aux animations Key Frame en utilisant les objets suivants :
L’exemple suivant montre comment utiliser les Key Frames avec les Easing Functions qui leurs sont associées pour créer l’animation d’un Rectangle qui se contracte, ralentit, puis s’étend vers le bas (comme s’il chutait) et puis rebondit jusqu’à s’arrêter. Pour essayer cet exemple, cliquez sur le Rectangle pour voir l’effet.
En plus de l’utilisation des Easing Functions, vous pouvez créer vos propres Easing Functions en héritant d’EasingFunctionBase. Pour plus d’informations, consultez EasingFunctionBase.
Voir aussi