Comment puis-je obtenir le courant de la souris à l'écran des coordonnées dans WPF?
Comment obtenir de la souris sur la coordination de l'écran?
Je sais seulement Mouse.GetPosition()
qui se mousePosition de l'élément, mais je veux obtenir la coordination sans l'aide de l'élément.
- Les coordonnées de la souris par rapport à quoi? Coordonnées de l'écran, par rapport à une Fenêtre?
- Je désigne la position de la souris sur l'écran.
System.Windows.Forms.Cursor.Position
Vous devez vous connecter pour publier un commentaire.
Pour le suivi de Rachel réponse.
Voici deux façons dont vous pouvez obtenir de la Souris à l'Écran des Coordonnées dans WPF.
1.À L'Aide De Formulaires Windows. Ajouter une référence à System.De Windows.Les formes
2.En Utilisant Win32
Ou dans le plus pur WPF utilisation PointToScreen.
Exemple de méthode d'assistance:
Voulez-vous des coordonnées par rapport à l'écran ou l'application?
Si c'est au sein de l'application suffit d'utiliser:
Si non, je crois que vous pouvez ajouter une référence à
System.Windows.Forms
et d'utilisation:Si vous essayez un grand nombre de ces réponses sur différentes résolutions, des ordinateurs avec plusieurs moniteurs, etc. vous pouvez constater qu'ils ne fonctionnent pas de manière fiable. C'est parce que vous avez besoin d'utiliser une transformation pour obtenir la position de la souris par rapport à l'écran courant, pas l'ensemble de la zone d'affichage qui se compose de toutes vos moniteurs. Quelque chose comme ça...(où "cela" est une fenêtre WPF).
Cela fonctionne sans avoir à utiliser les formulaires ou d'importer toutes les Dll:
Vous pouvez utiliser la combinaison de TimerDispatcher (WPF Minuterie analogique) et Windows "Crochets" pour attraper la position du curseur de système d'exploitation.
Point est un peu de
struct
. Il ne contient que X, Y, champs.Cette solution est également de résoudre le problème avec trop souvent ou trop rares, la lecture des paramètres de sorte que vous pouvez régler par vous-même. Mais rappelez-vous WPF surcharge de la méthode avec un arg qui représente
ticks
pasmilliseconds
.Si vous êtes à la recherche pour un 1 liner, ce n'bien.
- je ajouter pour l'utilisation avec des commandes
Mouse.GetPosition(mWindow)
vous donne la position de la souris par rapport au paramètre de votre choix.mWindow.PointToScreen()
convertir la position d'un point par rapport à l'écran.Donc
mWindow.PointToScreen(Mouse.GetPosition(mWindow))
vous donne la position de la souris par rapport à l'écran, en supposant quemWindow
est une fenêtre(en fait, toute classe dérivée deSystem.Windows.Media.Visual
ont cette fonction), si vous utilisez ceci à l'intérieur d'une fenêtre WPF classe,this
devrait fonctionner.