wpf element visualtreehelper visual-tree

WPF obtiene elemento(s) debajo del mouse



visualtreehelper visual-tree (3)

¿Hay alguna manera con WPF de obtener una serie de elementos bajo el mouse en un evento MouseMove?



De " WPF Unleashed ", página 383:

Las pruebas de detección visual pueden informarle sobre todos los Visual que intersecten con una ubicación, [...] debe usar el [VisualTreeHelper.]HitTest que acepta un delegado HitTestResultCallback . Antes de que HitTest esta versión de HitTest , se invoca al delegado una vez para cada Visual relevante, comenzando desde la más alta hasta la más inferior.

La firma de dicha devolución de llamada es

HitTestResultBehavior Callback(HitTestResult result)

y debe devolver HitTestResultBehaviour.Continue para recibir más visitas, como se muestra a continuación (desde la página enlazada en 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; }

Para obtener más información, consulte la documentación de MSDN para VisualTreeHelper.HitTest .


También puede intentar usar la propiedad Mouse.DirectlyOver para obtener el elemento superior que está debajo del mouse.