2010-05-08 4 views
3

Je joue avec une simple application WPF. Une partie comprend une grille contenant plusieurs contrôles. La grille est pivotée en utilisant LayoutTransform et RotateTransform. Je dois obtenir les coordonnées d'un clic de souris par rapport au coin supérieur gauche de la grille, en tenant compte de la rotation. Pour être clair, disons que j'ai une seule surface de dessin dans la grille et qu'aucune transformation n'a été appliquée. Je clique alors à l'endroit X = 20, Y = 10 et place un point sur la surface de dessin à ce point. Si la grille est maintenant tournée de 30 degrés et que je clique sur le point (qui est également déplacé par la rotation), la position du clic doit toujours être X = 20, Y = 10.Comment obtenir les coordonnées d'un clic de souris sur un contrôle WPF transformé?

Répondre

5

MouseEventArgs a une méthode GetPosition qui prend un UIElement. Il renvoie la position de l'événement mouse par rapport à l'élément spécifié. Donc, si vous voulez transformer un clic de souris en coordonnées d'une grille, passez cette grille à la méthode GetPosition.

+0

Parfait! J'utilise en fait MouseDown mais MouseButtonEventArgs a aussi la méthode. Bien sûr, j'ai essayé cela avant mais mon cerveau devait être en pilote automatique. Merci beaucoup. – BlackWasp

+0

... peut-être que je faisais tourner quelque chose dans la grille et que je vérifiais la grille. Ce sera quelque chose de stupide. – BlackWasp

Questions connexes