【问题标题】:How do mouse events work in WPF?鼠标事件如何在 WPF 中工作?
【发布时间】:2013-03-18 15:51:33
【问题描述】:

WPF 控件如何知道鼠标事件发生在它上面,以便它可以引发鼠标事件。

例如 Button 控件如何知道捕获 MouseDown 和 MouseUp 事件并将其转换为单击事件。

【问题讨论】:

  • 你应该看看here
  • 这是一个完全有效的问题。鼠标事件如何在 WPF 中工作。看起来投票结束的人只是不太了解这个话题。
  • 无论如何,如果这确实被重新打开。有人回复此评论,以便我们讨论 WPF 中的附加事件和生活。

标签: c# wpf wpf-controls


【解决方案1】:

Windows 使用消息传递模型来通知 GUI 元素正在发生的事情。 Windows 将这些消息放入一个消息队列中,每个窗口都不断地检查这个队列以查看存在哪些消息。这通常称为消息循环。然后窗口负责接收发往它自己的消息,并执行必要的操作(例如引发用户代码响应的事件)。我建议阅读 thisthis 以了解有关消息循环和消息的更多信息。

在 WinForms 中,每个控件都有自己的窗口,因此每个控件都有自己的消息队列。这不是 WPF 的情况。 WPF 以不同的方式处理此问题,因为 WPF 将整个窗口视为一个项目,在运行时组合必要的元素。我建议阅读 this 以了解有关 WPF 如何处理这种情况的更多信息。

除了我在这里列出的资源之外,还有许多其他资源,如果您只是搜索 Windows 消息、Windows 消息循环并将 WPF 加入其中。

【讨论】:

  • 感谢您提供的链接非常有用。
猜你喜欢
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2018-10-08
相关资源
最近更新 更多