2009-02-04 4 views
10

Maintenant que je peux faire des contrôles utilisateur utiles dans WPF (grâce à this stackoverflow answer) Je veux être en mesure de mettre de nombreux contrôles utilisateur sur une page en deux colonnes et permettre à l'utilisateur de pouvoir les déplacer en fonction de préférence, en faisant glisser la ceux qu'ils utilisent le plus au sommet, etc.Comment permettre à l'utilisateur de faire glisser/déposer les contrôles utilisateur WPF n'importe où sur la page?

quelqu'un peut-il me pointer du code, des tutoriels, etc., qui font cela? Je peux imaginer que cela a été fait assez facile à faire dans WPF.

+2

"Je peux imaginer que cela a été assez facile à faire dans WPF." Oui, vous pouvez l'imaginer. Tu devras. :) – Beska

Répondre

4

Here est un blog pour vous lancer sur la fonctionnalité de glisser-déplacer dans WPF.

Amusez-vous.

0

Je sais que ce n'est pas exactement ce dont vous avez besoin, mais cela pourrait vous rapprocher !!!

Martin Grayson a un projet sur Codeplex appelé Blacklight ... Consultez le Drag Dock Panel !!!

1

Une série de blog de posts qui traitent de glisser-déposer en utilisant les propriétés ci-joints.

0

Pour référence ultérieure, il y a une grande bibliothèque CodeProject qui a une DragCanvas qui vous permet de faire glisser les contrôles placés:

http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx

Il contient également un CenteredContentControl si vous voulez faire " pièces jointes "entre les contrôles.

0

Correction:

private void Control_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { 
     isDragging = true; 
     var draggableControl = sender as UserControl; 
     clickPosition = e.GetPosition(this.Parent as UIElement); 
     var transform = RenderTransform as TranslateTransform; 
     if (transform != null) { 
      clickPosition.X -= transform.X; 
      clickPosition.Y -= transform.Y; 
     } 
     draggableControl.CaptureMouse(); 
} 
Questions connexes