2009-01-29 12 views
0

J'ai créé une fenêtre personnalisée avec windowStyle = "none", (sans titre ou maximiser - minimiser les boutons) et j'essaye d'implémenter une opération DragMove lorsque l'utilisateur clique et glisse sur une grille. (Ceci est câblé en appelant DragMove sur un gestionnaire MouseLeftButtonDown)Glisser une fenêtre à partir d'une grille

Premier problème étrange que cet événement ne se déclenche si la grille n'a pas de backround. Ajout d'une couleur d'arrière-plan ne fait l'événement pour faire virer, mais après la première drag-je obtenir cette erreur:

« Ne peut appeler DragMove lorsque le bouton principal de la souris est vers le bas »

code Snipet:

Private Sub Grid1_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles Grid1.MouseLeftButtonDown 
    DragMove() 
End Sub 

Je sais que cela fonctionnerait bien pour une étiquette, mais n'y a-t-il pas un moyen de le faire fonctionner pour une grille?

Répondre

0

OK, j'ai trouvé la réponse ..

J'ai utilisé une frontière pour envelopper la grille, puis pris l'événement Border1_MouseLeftButtonDown.

J'ai aussi dû définir les bordures de fond à "Transparent", et maintenant tout fonctionne comme un charme.

Private Sub Border1_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles Border1.MouseLeftButtonDown 
    DragMove() 
End Sub