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 delegadoHitTestResultCallback
. Antes de queHitTest
esta versión deHitTest
, se invoca al delegado una vez para cadaVisual
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.