WPF Obtenir des éléments sous la souris
-
09-06-2019 - |
Question
Existe-t-il un moyen avec WPF d'obtenir un tableau d'éléments sous la souris lors d'un événement MouseMove ?
La solution
Depuis "WPF libéré", page 383 :
Les tests visuels peuvent vous informer sur tous
Visual
s qui coupent un emplacement, [...] vous devez utiliser [...[VisualTreeHelper.]HitTest
méthode qui accepte unHitTestResultCallback
déléguer.Avant cette version deHitTest
revient, le délégué est invoqué une fois pour chaqueVisual
, à partir du haut et se terminant au bottommost.
La signature d'un tel rappel est
HitTestResultBehavior Callback(HitTestResult result)
et il doit revenir HitTestResultBehaviour.Continue
pour recevoir d'autres hits, comme indiqué ci-dessous (à partir de la page liée sur MSDN) :
// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
// Add the hit test result to the list that will be processed after the enumeration.
hitResultsList.Add(result.VisualHit);
// Set the behavior to return visuals at all z-order levels.
return HitTestResultBehavior.Continue;
}
Pour plus d'informations, veuillez consulter le Documentation MSDN pour VisualTreeHelper.HitTest
.
Autres conseils
Vous pouvez également essayer d'utiliser la propriété Mouse.DirectlyOver pour obtenir l'élément le plus haut situé sous la souris.
Pouvez-vous utiliser le VisualTreeHelper.HitTest ?
http://lukieb.blogspot.com/2008/07/visualtreehelperhittest.html