Search code examples
c#canvasmouseeventuielementroutedevent

Mouse event not reaching UIElement


I have a 6x8 grid of System.Windows.Controls.Canvas objects. The top left canvas does not receive mouse events while all the others do. I tried OnMouseMove and OnMouseClick events.

A child object isn't handling the event because System.Windows.Media.VisualTreeHelper#GetChildrenCount() doesn't show any children. I couldn't catch PreviewOnMouseMove either. Can there be some (perhaps transparent) control in front of my canvas that is taking precedence?


Solution

  • Finally found a solution. Each of the Canvases have Adorners. According to this MSDN article, adorners receive mouse events before the underlying UI element does. I set the IsHitTestVisible property of all my adorners to false.