【问题标题】:Difference between WPF and Winform in terms of windows messages and OSWPF和Winform在windows消息和操作系统方面的区别
【发布时间】:2014-04-29 09:45:16
【问题描述】:

我想知道使用 WPF 开发的应用程序和 Winform 应用程序在 windows 方面是否有任何区别。这两种类型的应用程序在 Windows 操作系统中是否被认为是相同的,这只是它们的开发方式吗? 要么 当涉及到每个应用程序窗口及其子窗口在屏幕上的绘制方式时,它们之间存在一些根本区别。

我特别想知道

  • 如果存在相同的 windows 消息窗口句柄等概念。
  • 在两种类型的应用程序中,ON_PAINT 事件的触发方式相同
  • 在 UI 自动化方面,如果我们尝试运行 UIA 客户端应用程序,是否会发现每种应用程序的控件存在差异。

我不是在寻找有关我们如何在 WPF 或 WF 中进行开发的信息,或者在 WPF 中的 XAML 中我们指定了我们需要哪些 UI 元素以及我们如何需要它们。

【问题讨论】:

  • 您是否在询问 .NET UI 自动化 API 等问题?我可能错了,但我认为 WinForms 甚至不存在 UI Automation Provider(它当然适用于 WPF)。
  • 是的,我问的是 .Net UI 自动化,我不确定,但我认为它也适用于 winforms 应用程序。
  • WPF 和 WF 之间的主要区别之一是 WPF 控件不是窗口,它们没有 HWND 句柄。

标签: c# .net wpf winforms xaml


【解决方案1】:

答案是肯定的。如果您在 windows 中运行应用程序并生成一个新窗口,则涉及 windows 消息。这是操作系统通知您的应用程序事件的方式。这是常见的桌面行为,也是 Windows 的工作方式。

由于渲染方法(我忘记了它的名称......),WPF 响应渲染事件的行为略有不同。 WPF 使用 directx 绘制到绑定到 Windows 客户区的图形表面。 Winforms 绘制到由 windows 提供的 GDI+ 表面。

检索窗口句柄并订阅其他(USB 设备更改等)窗口消息是不同的™,需要一些小技巧。

UI 自动化按照您的预期工作,但与您在 Winform 中经常看到的相比,控件名称和更深的图表会略有不同。

【讨论】:

  • 我没有得到“你还必须......系统事件”。部分。
猜你喜欢
  • 1970-01-01
  • 2014-04-03
  • 2013-05-21
  • 2013-03-20
  • 2010-12-13
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 2020-12-26
相关资源
最近更新 更多