2008-10-27 3 views
3

J'ai un scénario dans lequel j'aimerais animer un contrôle WPF juste avant qu'il ne soit supprimé des arborescences visuelles/logiques. Le contrôle est personnalisé, et le style de contrôle, y compris les animations, serait fourni par un concepteur (c'est-à-dire que je ne connais pas les détails de ce qu'ils seront au moment de l'écriture du code de contrôle). Je souhaite fournir des événements routés qui permettent au concepteur de déclencher une animation juste avant que l'objet soit supprimé (par exemple, l'utilisateur fait glisser le contrôle avec la souris et lorsque le bouton de la souris est relâché, le contrôle disparaît lentement au lieu d'être brusquement supprimé de l'arbre visuel/logique). Est-ce possible en utilisant simplement des événements routés? Est-il possible de détecter quand l'animation est terminée sans que le concepteur ait besoin de définir une propriété de dépendance excentrique ou à la fin de l'animation pour déclencher la suppression du contrôle? L'utilisation d'une propriété de dépendance créerait une fuite de mémoire si le concepteur n'a pas défini la propriété. Y a-t-il un meilleur moyen?Comment faire pour laisser l'animation de contrôle WPF terminée avant de supprimer de l'arborescence Visual

Répondre

2

Chaque storyboard a un événement Completed qui est appelé lorsque l'animation est terminée. Vous devez gérer cet événement et supprimer le contrôle de cet événement. De cette façon, vous pouvez simplement démarrer l'animation lorsque le bouton de la souris est relâché.

+1

Sans connaître le storyboard par son nom, comment gérerais-je l'événement Completed? (Je suppose que le contrôle est modélisé par un concepteur, et peut inclure ou non des animations). Le traitement de l'événement terminé est-il le seul moyen? –

Questions connexes