If you are using the tunnel version of mouse events rather than bubble events (i.e. PreviewMouseDown instead of MouseDown ), you will first get mouse events from UIElement and be able to stop them from reaching adorner by setting e.Handled to true.
source share