Truc # 1 : Prévoir un BeginTime pour les storyboards de transitions en XAML

Comme ce blog me sert de pense-bête, j’ai decidé de lui adjoindre des billets très court de type « Trucs et Astuces ».
Voici le premier Truc :

Truc # 1 : Prevoir un BeginTime pour les storyboards de transitions.

Les storyboards sont liés au Rendering thread, un thread caché qui est chargé de l’affichage de l’écran. Si celui-ci est occupé, le Storyboard sera au mieux amputé au pire caché.

Prenons l’exemple d’une ListBox que l’on remplie à l’initialisation de notre application.
Malheureusement, lorsque l’on dépose notre collection dans la ListBox, il n’y aucun moyen de savoir quand la Rendering Thread a terminé l’affichage des items.
Si l’on decide de lancer un Storyboard de fondu alors que l’affichage n’est pas terminé, l’animation sera probablement altéré.
La seule manière d’obtenir un affichage fluide est de rajouté à notre Storyboard la propriété BeginTime en lui affectant un TimeSpan.
Ce TimeSpan represente une durée avant le déclenchement du Storyboard.
Mais quelle durée doit-on lui affectée ?
Et bien, il va falloir tatonner pour obtenir la durée adéquate. Bien sur cette valeur n’est possible que pour un nombre d’items finis. L’empirisme est donc de rigueur :)

On doit toujours privilégier le lancement d’un Storyboard lorsqu’il se passe le moins de chose possible à l’écran !

leave your comment