Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

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 :

blog comments powered by Disqus