2010-09-27 4 views

Répondre

1

Le Canvas est le bon conteneur à utiliser car vous pouvez positionner son contrôle enfant par des coordonnées. Votre problème est plus sur le déplacement des éléments autour, qui est en fait faire glisser &.

Vous devrez gérer les événements de souris: MouseDown pour sélectionner un élément, MouseMove pour détecter un glissement et MouseUp pour le supprimer. Pendant le déplacement ou à la baisse, vous pouvez modifier les coordonnées de l'élément pour l'aligner automatiquement sur une grille ou par rapport aux éléments environnants.

J'ai réussi à réaliser un tel projet dans Silverlight et utilisé Adorner s pour ajouter des gestionnaires de redimensionnement aux éléments.

J'ai résolu la question de panoramique et de zoom en mettant le Canvas dans un Viewbox, qui était dans un ScrollViewer. Si vous voulez laisser l'utilisateur contrôler le facteur de zoom, appliquez un LayoutTransform au Canvas (disponible dans le Toolkit).