According to the help of WPF, the routing events of some controls are internally processed and marked as Handled, so the Custom Event Processing code will no longer work, and sometimes it will be very depressing! However, WPF provides the necessary methods. 1) Use the Preview event. Note that tunnel events are executed from the root element. 2) use AddHandler to add custom routing events. The first solution does not describe the second one. Take the button as an example and use AddHandler to add events, as shown in the following Btn. addHandler (Button. mouseLeftButtonDownEvent, new MouseButtonEventHandler (Btn_MouseLeftButtonDown), true); Btn. addHandler (Button. mouseRightButtonDownEvent, new MouseButtonEventHandler (Btn_MouseRightButtonDown), true); Btn. addHandler (Button. mouseLeftButtonUpEvent, new MouseButtonEventHandler (Btn_MouseLeftButtonUp), true); www.2cto.com Btn. addHandler (Button. mouseMoveEvent, new MouseEventHandler (Btn_MouseMove), true); then the four added events can be used.