Pregunta

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

¿Fue útil?

Solución

De "WPF desatado", página 383:

Las pruebas visuales de éxito pueden informarle sobre todo Visuals que cruzan una ubicación, [...] debes usar [...] el [VisualTreeHelper.]HitTest método que acepta un HitTestResultCallback delegar.Antes de esta versión de HitTest Devoluciones, el delegado se invoca una vez para cada relevante Visual, comenzando desde la más alto y terminando en el bottommost.

La firma de dicha devolución de llamada es

HitTestResultBehavior Callback(HitTestResult result)

y tiene que regresar HitTestResultBehaviour.Continue para recibir más visitas, como se muestra a continuación (desde la página vinculada 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 más información, por favor consulte el Documentación de MSDN para VisualTreeHelper.HitTest.

Otros consejos

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top