Free Silverlight Behavior Collection

[new:15/08/2011]Les Behaviors sont des outils précieux dans le développement d’applications Silverlight. On en trouve beaucoup de ci, de là, pas toujours bien débogués et non centralisés. Il m’est venue à l’idée que tout ce potentiel ne pouvait être utilisé que si j’y mettais un peu d’ordre. Et comme je suis partageur je vous offre deux projets : une collection de behaviors que j’ai contrôlés, et une application de présentation originale, le tout avec le source.

My Behavior Collection

L’application exemple montre quelques un des béhaviors, classés par catégorie. L’application de démonstration est simple à utiliser : en haut à gauche et droite se trouve une flèche, celle de droite pour avancer dans la démo, celle de gauche pour revenir en arrière. Les pages formes une boucle infinie.

Le test c’est ici : MyBehaviorCollection

Les behaviors

Comme je le disais, tous ne sont pas intégrés à la démo, soit par faute de temps, soit parce tous ne sont pas facilement démontrables de cette façon.

L’espace de nom Od.Behaviors est contenu dans un projet séparé qu’il suffit d’ajouter à une application Silverlight pour être en mesure d’utiliser tous les behaviors déclarés.

Ces derniers sont classés par thème ou catégorie :

Animation

Tous les behaviors (ou actions) de type animation.

  • AnimateVisibilityBehavior; anime la propriĂ©tĂ© Visibility
  • BouncingPlaneBehavior, un plan qui rebondit
  • RandomChildrenAnimationBehavior; anime de façon alĂ©atoire les enfants d’un conteneur
  • ScaleAnimationAction; dĂ©clenche un changement d’’échelle
  • ShakeBehavior; Applique un petit tremblement Ă  un objet
  • ShowHideFlipAction; une page Ă  deux faces
  • SwivelAction; un autre effet visuel

Appearance

Tout ce qui concerne l’apparence des objets.

  • BringToFrontBeavhior; amène un objet en avant plan
  • CenterAndScaleBehavior; centrer et redimensionne un contrĂ´le
  • ClipToBoundBehavior; un classique bien utile pour clipper automatiquement
  • FadeInOutBehavior; effectue un fade in ou out
  • ResizeBehavior; affiche des poignĂ©es pour redimensionner l’objet
  • ScaleAction; changement de taille
  • ToggleOpacityAction; changement d’opacitĂ© entre deux niveaux sĂ©lectionnĂ©s
  • ToggleVisibilityAction; changement de l’état Visibility
  • TransparencyBehavior; Changement de l’opacitĂ© quand la souris est sur l’objet
  • WaterMarkBehavior; Un watermark utilse pour les zones de saisie

Commanding

Behaviors relatifs Ă  la gestion de commande

  • CommandOnEnterBehavior ; dĂ©clenche une commande sur la touche Enter
  • ConfirmCommandbehavior; demande de confirmation pour l’exĂ©cution d’une commande
  • ExecuteCommande; exĂ©cution d’une commande
  • UnloadedBehavior; DĂ©clenche une commande quand un objet est retirĂ© du layout

Effects

Effets visuels.

  • BlurOverbehavior; floute l’objet quand la souris est dessus
  • FlipAction; effet de page Ă  deux faces
  • Loop3DAction; une animation de type 3D
  • MouseOver3DAction; animation de type 3D sur le mouseOver
  • MouseProjectionAction; modification de la projection
  • RotateBehavior; permet la rotation de l’objet par l’utilisateur
  • ShiverBehavior; effet visuel
  • Slide3DToMouseBehavior; effet visuel

Functions

Des behaviors plutôt orientés fonction.

  • DragBehavior; Support du drag
  • EndCueAction; dĂ©clence une action sur un marqueur placĂ© en fin d’un media element
  • InstallOOBAction; gestion de l’installation Out Of Browser
  • OpenComboboxBehavior; Ouvre la liste dĂ©roulante d’une combo sur la passage de la souris
  • PersistentPropertyBehavior; permet de rendre une propriĂ©tĂ© persistante (choix utilisateur par ex.)
  • SelectOnFocusAction; SĂ©lection sur la prise de focus
  • SetFocusAction; Prise du focus
  • ShowMessageBoxAction; affiche un dialogue
  • SnappingSliderBehavior; limite les positions d’un slider
  • ToggleFullScreenAction; passer en mode plein Ă©cran

Navigation

NavigationAction; Navigue vers une URL sur le déclenchement du Trigger

Utilities

Quelques classes bien pratiques utilisées par certains behaviors :

  • AnimationMaker; Créée et joue une animation sur un item donnĂ©e et une propriĂ©tĂ© double dĂ©finie.
  • BindingListener; ajouter du binding Ă  des Ă©lĂ©ments non FrameworkElement
  • DelgatingCommand; fournit une commande ICommand (dans l’esprit MVVM)
  • StoryboardHelper; Fabrique une animation de changement de taille
  • TransitionHelper; Fabrique une transition visuelle pour la Visibility
  • VisualTree; Retourne les enfants d’un Ă©lĂ©ment visuel, tous ou un en particulier (avec son nom). RĂ©cursif.

Conclusion

Rien d’exceptionnel, mais ce qui est intéressant c’est d’avoir d’un seul coup tout le code de tous ces behaviors, normalement réputés débogués, de pouvoir les étudier et s’en inspirer pour créer les siens propres. Cette collection prend ainsi toute sa dimension par son côté pédagogique, chaque behavior pris à part n’ayant rien de bien exceptionnel.

Bon apprentissage, n’oubliez pas de m’envoyer vos behaviors si vous en créez de nouveaux...

...Et Stay Tuned !

Le code source de l’ensemble :