如何在WPF中生成UI事件?

时间:2015-02-25 10:14:23

标签: c# wpf events routed-events uievent

我试图了解如何在WPF中生成与UI相关的RoutedEvent。

例如,如何在控件上按下鼠标左键开始PreviewMouseDown的隧道?

我自己找不到一个明确的答案。我的直觉是,窗口收到的消息(例如WM_MOUSEFIRST)会被处理,事件也会被提升,但这只是我的猜测。

1 个答案:

答案 0 :(得分:1)

最终必须WM_MOUSEFIRST以及在WPF中触发操作的类似Windows事件。毫无疑问。这就是 Windows 的工作方式。

在WPF内部,它使用EventManagerGlobalEventManager来处理事件。 Window和所有后续基类在EventManager(例如此处为WindowFrameworkElement)注册。

EventManager处理实际事件并负责路由。

实际鼠标事件由HwndMouseInputProvider处理,Window itself处理Window个事件。