The question is theoretical. Imagine that we have a certain window. In the window there are several layers made on the basis of UserControl . Layers are located one above the other, and completely overlap. Each layer has its own views. A view has its own logic for displaying and interacting with the user. That is, input event handling is in view. This is logical, because they know how to display the information correctly.
Attention, question: in case of bubble and tunnel propagation of events, only the most "closest" layer will work, everything under it will not receive input events. And it is necessary to get.
For example, we click into a certain point, and the views of all the layers that the point belongs to react to the click.
I understand that you need to implement some input event dispatcher. But maybe I don’t know something, and there is some standard way to solve this problem.