WPF Obtener elementos debajo del mouse
-
09-06-2019 - |
Pregunta
¿Hay alguna manera con WPF de obtener una serie de elementos debajo del mouse en un evento MouseMove?
Solución
De "WPF desatado", página 383:
Las pruebas visuales de éxito pueden informarle sobre todo
Visual
s que cruzan una ubicación, [...] debes usar [...] el[VisualTreeHelper.]HitTest
método que acepta unHitTestResultCallback
delegar.Antes de esta versión deHitTest
Devoluciones, el delegado se invoca una vez para cada relevanteVisual
, 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.