WPF obtém elemento (s) sob o mouse
-
09-06-2019 - |
Pergunta
Existe uma maneira do WPF obter uma matriz de elementos sob o mouse em um evento MouseMove?
Solução
De "WPF liberado", página 383:
Testes visuais de acerto podem informá -lo sobre todos
Visual
s que cruza um local, [...] você deve usar [...] o[VisualTreeHelper.]HitTest
método que aceita umHitTestResultCallback
delegar.Antes desta versão deHitTest
Retornos, o delegado é invocado uma vez para cadaVisual
, começando do topo e terminando no BottomMest.
A assinatura de tal retorno de chamada é
HitTestResultBehavior Callback(HitTestResult result)
e tem que voltar HitTestResultBehaviour.Continue
para receber mais acessos, conforme mostrado abaixo (da página vinculada no 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 mais informações, consulte o Documentação MSDN para VisualTreeHelper.HitTest
.
Outras dicas
Você também pode tentar usar a propriedade Mouse.DirectlyOver para obter o elemento superior que está sob o mouse.