WPF控件如何知道鼠标事件Happend在其上,以便它可以引发其鼠标事件。
例如,按钮控件如何知道捕获MouseDown和MouseUp事件并将其转换为单击事件。
发布于 2013-03-19 00:01:33
Windows使用消息传递模型来通知GUI元素正在发生的事情。Windows将这些消息放入一个消息队列中,每个窗口都会不断地检查该队列,以查看存在哪些消息。这通常被称为消息循环。然后,该窗口负责获取发往其自身的消息,并执行必要的操作(例如引发一个事件以供用户代码响应)。我建议阅读this和this以了解有关消息循环和消息的更多信息。
在WinForms中,每个控件都是自己的窗口,因此每个控件都有自己的消息队列。WPF并非如此。WPF以不同的方式处理此问题,因为WPF将整个窗口视为单个项目,并在运行时组成必要的元素。我推荐阅读this来了解更多关于WPF如何处理这种情况的信息。
除了我在这里列出的资源之外,还有很多其他的资源,如果你只需要搜索Windows Messages,Windows Message Loop和WPF就可以了。
https://stackoverflow.com/questions/15481106
复制相似问题