Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
RefreshIt
3 octobre 2007

Un petit Timer pour Silverlight (et WPF)

Alors voilà, pour mon premier post, je me suis dit qu'il fallait que je sois à la hauteur pour ne pas décevoir mon collègue et néanmoins ami NomiS !

J'ai constaté que WPF et Silverlight n'intégraient pas de Timer par défaut. Vous savez, ce bon vieux Timer qui nous permet simplement d'afficher l'heure, ou bien une petite animation perso plutôt sympa. Alors, c'est vrai qu'avec les Storyboards, il est plutôt facile de simuler un Timer.
Mais voilà, moi je me suis dit, comme c'est facile, c'est le genre de code qu'on écrit à chaque fois sans s'en rendre compte et du coup, c'est une perte de temps ! (Je suis un gars productif moi, faut pas croire...)

Donc voilà, le principe repose sur un simple Storyboard contenant une animation quelconque (en l'occurrence une DoubleAnimation) avec sa propriété Duration affecté de l'intervalle souhaité pour le Timer.
Sachant que l'objet Duration contient un TimeSpan, il est après assez facile de mettre à jour la valeur de cet intervalle.

Ensuite, mapper l'évènement Completed du storyboard à une fonction dans le code behind, fonction qui n'aura qu'à redémarrer le storyboard... Et le tour est joué !

Il suffit enfin d'ajouter une petite propriété Enabled qui permettra de déterminer le démarrage et l'arrêt de cette boucle et d'ajouter un évènement au contrôle qui sera déclenché à chaque fin de Storyboard.

Bon pour illustrer, car il faut illustrer :

Un peu de XAML (seule chose à ajouter dans les resources de la page) :
<Storyboard x:Name="storyboard" Completed="storyboard_Completed">
    <DoubleAnimation x:Name="animation" Duration="00:00:0.1" />
</Storyboard>

Les 2 éléments sont à récupérer dans le code behind afin de pouvoir avoir accès au storyboard (démarrage et arrêt du timer) et l'animation pour affecter la valeur de l'intervalle.

Les fonctions Begin() et Stop du storyboard sont vos amies pour tout le reste du code behind.

A vos claviers !

PS : J'ai été à la hauteur ?

Publicité
Commentaires
N
nayalile: pas si sur :p<br /> Je dirais une ou deux années de formation. Meme pas.
N
moi en tout cas jsuis à des années lumières de comprendre...
N
Et qu'est-ce que Silverlight?
N
Un petit lien vers le site de Silverlight pourrait aider: <br /> [anglais]<br /> http://silverlight.net/
N
Hahahahahaha <br /> rien capté !<br /> <br /> Vulgarisation mon petit, vulgarisation ! Mais dans le respect de l'info !
Publicité