我试图了解如何在WPF中生成与UI相关的RoutedEvent。
例如,如何在控件上按下鼠标左键开始PreviewMouseDown
的隧道?
我自己找不到一个明确的答案。我的直觉是,窗口收到的消息(例如WM_MOUSEFIRST
)会被处理,事件也会被提升,但这只是我的猜测。
答案 0 :(得分:1)
最终必须为WM_MOUSEFIRST
以及在WPF中触发操作的类似Windows事件。毫无疑问。这就是 Windows 的工作方式。
在WPF内部,它使用EventManager
和GlobalEventManager
来处理事件。 Window
和所有后续基类在EventManager
(例如此处为Window
和FrameworkElement
)注册。
EventManager
处理实际事件并负责路由。
实际鼠标事件由HwndMouseInputProvider
处理,Window
itself处理Window
个事件。