Pergunta

Existe uma maneira do WPF obter uma matriz de elementos sob o mouse em um evento MouseMove?

Foi útil?

Solução

De "WPF liberado", página 383:

Testes visuais de acerto podem informá -lo sobre todos Visuals que cruza um local, [...] você deve usar [...] o [VisualTreeHelper.]HitTest método que aceita um HitTestResultCallback delegar.Antes desta versão de HitTest Retornos, o delegado é invocado uma vez para cada Visual, 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top