yo *_*han 2 c# wpf wpf-controls
WPF控件如何知道鼠标事件在它上面重叠,以便它可以提升它的鼠标事件.
例如,Button控件如何知道捕获MouseDown和MouseUp事件并将其转换为click事件.
Windows使用Messaging模型向GUI元素通知正在发生的事情.Windows将这些消息放入消息队列中,并且每个窗口都不断检查此队列以查看存在的消息.这通常称为消息循环.然后,窗口负责获取发往自身的消息,并执行必要的操作(例如引发用户代码响应的事件).我建议阅读本和这更多地了解消息循环和消息.
在WinForms中,每个控件都是自己的窗口,因此每个控件都有自己的消息队列.WPF不是这种情况.WPF处理这种情况的方式不同,因为WPF将整个窗口视为单个项目,在运行时组成必要的元素.我建议阅读本文以了解有关WPF如何处理这种情况的更多信息.
除了我在这里列出的那些之外,还有很多其他资源,如果你只是搜索Windows消息,Windows消息循环并将WPF投入混合.