[Silverlight] [Drag&Drop] Intégrer encore plus facilement un glisser-déposer en Silverlight.
Suite à la première version (disponible ici) du drag&drop voici la version 2 du drag&drop.
Toute la gestion du glissé-déposé est maintenant déporté dans une classe, pour permettre une utilisation plus simple mais aussi plus propre.
//Initialisation du contrôle
_dragAndDropManager = new DragAndDropManager(grdPrincipal);
_dragAndDropManager.DefinirUneAireDeDeplacementMaximum(grdPrincipal);
//Les zones dans lequels on peut déplacer les contrôles
_dragAndDropManager.AjouterUneZoneAvecControlesDeplacables(stp1);
_dragAndDropManager.AjouterUneZoneAvecControlesDeplacables(stp2);
_dragAndDropManager.AjouterUneZoneAvecControlesDeplacables(stp3);
//Il suffit d'ajouter les contrôles au DragAndDropManager.
_dragAndDropManager.AjouterUnControleDeplacable(CreationBille(Bille.Couleur.Bleu, ref stp1));
_dragAndDropManager.AjouterUnControleDeplacable(CreationBille(Bille.Couleur.Jaune, ref stp1));
_dragAndDropManager.AjouterUnControleDeplacable(CreationBille(Bille.Couleur.Orange, ref stp1));
_dragAndDropManager.AjouterUnControleDeplacable(CreationBille(Bille.Couleur.Rouge, ref stp1));
_dragAndDropManager.AjouterUnControleDeplacable(CreationBille(Bille.Couleur.Verte, ref stp1));
_dragAndDropManager.AjouterUnControleDeplacable(CreationBille(Bille.Couleur.Violette, ref stp2));
//On peut s'abonner à quelques événements
_dragAndDropManager.OnDragAndDropDebut += new EventHandler<EventHandlerDragDropDebut>(DragAndDropManager_OnDragAndDropDebut);
_dragAndDropManager.OnDragAndDropMove += new EventHandler<EventHandlerDragDropMove>(DragAndDropManager_OnDragAndDropMove);
_dragAndDropManager.OnDragAndDropFin += new EventHandler(DragAndDropManager_OnDragAndDropFin);
L'utilisation en est très simple, tous les événements sont gérés pas la classe elle même. Passe de 3 à 4 ou 5 colonnes) prends pas plus de 30 secondes, pratique !
Bien sûr la classe n'en n'est qu'a ses débuts il reste à rajouter, la suppression des contrôles et d'autres choses mais elle est déjà utilisable et si elle ne l'est pas, elle peux servire d'une très bonne base.
Voici une démo :
Publier un nouveau commentaire