我试图了解如何在WPF中生成与UI相关的RoutedEvents。
例如,按下控件上的鼠标左键是如何启动PreviewMouseDown隧道的
我自己也找不到明确的答案。我的直觉是,窗口接收到的消息(例如WM_MOUSEFIRST)被处理,事件作为结果被引发,但这只是我的猜测。
发布于 2015-02-25 10:22:58
最终,在WPF中触发操作的必须是WM_MOUSEFIRST和类似的Windows。确实是这样。这就是Windows的工作方式。
在WPF内部,它使用EventManager和GlobalEventManager来处理事件。一个Window和所有后续的基类都在EventManager注册自己(比如Window和FrameworkElement )。
EventManager处理实际事件并处理路由。
实际的鼠标事件由HwndMouseInputProvider处理,一些Window事件由Window 本身处理。
https://stackoverflow.com/questions/28716300
复制相似问题