Question

Existe-t-il un moyen avec WPF d'obtenir un tableau d'éléments sous la souris lors d'un événement MouseMove ?

Était-ce utile?

La solution

Depuis "WPF libéré", page 383 :

Les tests visuels peuvent vous informer sur tous Visuals qui coupent un emplacement, [...] vous devez utiliser [... [VisualTreeHelper.]HitTest méthode qui accepte un HitTestResultCallback déléguer.Avant cette version de HitTest revient, le délégué est invoqué une fois pour chaque Visual, à 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top