WPF Ottieni elementi (s) sotto il mouse

C’è un modo con WPF per ottenere una matrice di elementi sotto il mouse su un evento MouseMove?

Da ” WPF Unleashed “, pagina 383:

Il test dei risultati visivi può informarti su tutti i Visual che intersecano una posizione, […] devi utilizzare […] il metodo [VisualTreeHelper.]HitTest Che accetta un delegato HitTestResultCallback . Prima che questa versione di HitTest ritorni, il delegato viene richiamato una volta per ciascun Visual pertinente, iniziando dal più alto e terminando in basso.

La firma di tale callback è

 HitTestResultBehavior Callback(HitTestResult result) 

e deve restituire HitTestResultBehaviour.Continue a ricevere ulteriori hit, come mostrato di seguito (dalla pagina collegata su 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; } 

Per ulteriori informazioni, consultare la documentazione MSDN per VisualTreeHelper.HitTest .

Puoi anche provare a usare la proprietà Mouse.DirectlyOver per ottenere l’elemento più in alto che si trova sotto il mouse.