WPF和Winform在Windows消息和操作系统方面的区别

Res*_*Vic 6 .net c# wpf xaml winforms

我想知道在Windows方面使用WPF和Winform应用程序开发的应用程序之间是否存在任何差异.这两种类型的应用程序在Windows操作系统中是否被认为是相同的,而这只是它们的开发方式?或者当它们关注如何在屏幕上绘制每个应用程序窗口及其子项时,它们之间存在一些根本区别.

我特别有兴趣知道

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

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

Gus*_*dor 2

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

\n\n

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

\n\n

检索窗口句柄和订阅附加(USB 设备更改等)窗口消息是不同的\xe2\x84\xa2 并且需要一些摆弄。

\n\n

UI 自动化按照您期望的方式工作,但期望控件名称略有不同,并且图表比通常在 winform 中获得的更深。

\n