WPF控件如何知道Mouse Event Happend就可以提升它的鼠标事件。
例如,Button控件如何知道捕获MouseDown和MouseUp事件并将其转换为单击事件。
答案 0 :(得分:5)
Windows使用Messaging模型向GUI元素通知正在发生的事情。 Windows将这些消息放入消息队列中,并且每个窗口都不断检查此队列以查看存在的消息。这通常称为消息循环。然后,窗口负责获取发往自身的消息,并执行必要的操作(例如引发用户代码响应的事件)。我建议您阅读this和this以了解有关消息循环和消息的更多信息。
在WinForms中,每个控件都是自己的窗口,因此每个控件都有自己的消息队列。 WPF不是这种情况。 WPF处理这种情况的方式不同,因为WPF将整个窗口视为单个项目,在运行时组成必要的元素。我建议阅读this以了解有关WPF如何处理这种情况的更多信息。
除了我在此列出的内容之外,还有许多其他资源,如果您只是搜索Windows消息,Windows消息循环并将WPF投入混合。