Adorners receive input events just like any other FrameworkElement. Because an adorner always has a higher z-order than the element it adorns, the adorner receives input events (such as Drop or MouseMove) that may be intended for the underlying adorned element. An adorner can listen for certain input events and pass these on to the underlying adorned element by re-raising the event.
At some point, the repetition of adorn makes my head spin.
adorn, adorn, adorn, adorn, adorn.
See original documentation here.