WPF - Déterminer si la souris est sur un UIElement
J'ai quelques balisage xaml qui ressemble essentiellement comme ceci:
<Canvas x:Name="A">
<Canvas x:Name="B"/>
</Canvas>
Je veux déterminer si la souris est au-dessus Canvas
B.
Quand je clique alors que ma souris est au-dessus de la Toile B, de la Souris.DirectlyOver renvoie de la Toile (que j'attends). Je puis obtenir une référence sur la Toile B à partir d'une Toile d'Une, mais quand je vérifie Toile B IsMouseOver de la propriété, elle retourne false.
Quelle est la meilleure façon de déterminer si la souris est au-dessus de la Toile B compte tenu de la xaml ci-dessus?
source d'informationauteur Brent Lamborn
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le Propriété IsMouseOver pour déterminer si la souris est sur un contrôle ou pas:
Tout De la souris.DirectlyOver peut fonctionner, si la souris est sur un contrôle des contenus par le
Canvas
que le contrôle sera renvoyé à la place de laCanvas
lui-même.IsMouseOver
de fonctionner correctement, même dans ce cas.J'ai trouvé une réponse ici, sur ce qui devrait vous aider: StackOverflow: WPF Façons de trouver des contrôles
Juste pour la référence:
Je viens de chercher un moyen de savoir si ma Souris est au-dessus de ma fenêtre applications à tous, et j'ai réussi à trouvé ce à l'aide:
Lors du débogage de la Souris.DirectlyOver il semble qu'il devrait avoir trouvé votre Toile de B, il semble que pour l'élément supérieur - de sorte que votre exemple devrait fonctionner. Il ne me donne pas un objet de dépendance, mais je suppose que vous pourriez juste de le comparer à votre toile à l'aide de ce est le code-behind (non testé):