Question

I possède une grille 6x8 d'objets System.Windows.Controls.Canvas. La partie supérieure gauche toile ne reçoit pas les événements de la souris alors que tous les autres. J'ai essayé événements OnMouseMove et OnMouseClick.

Un objet enfant gère pas l'événement car System.Windows.Media.VisualTreeHelper#GetChildrenCount() ne montre pas d'enfants. Je ne pouvais pas attraper PreviewOnMouseMove non plus. Peut-il y avoir un (peut-être transparent) contrôle devant ma toile qui prend priorité?

Était-ce utile?

La solution 2

Enfin trouvé une solution. Chacun des Canvases ont Adorners. Selon cet article MSDN , adorners recevoir des événements de souris avant l'élément de l'interface utilisateur sous-jacente Est-ce que. Je mets la propriété IsHitTestVisible de tous mes adorners à false.

Autres conseils

J'espère que cela vous aide, qui se trouve juste valeur Transparent à la propriété Background pour le Canvas:

Background="Transparent"

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top