WPF(Windows Presentation Foundation)
WPF是一个用于开发Windows或桌面客户端应用程序的UI框架。它是正在使用的.NET框架的GUI框架的最新方法。它的出现是为了开发在Windows操作系统上运行的Windows客户端应用程序,以及下一代的Windows窗体。它具有开发、运行、执行、管理和处理Windows客户端应用程序所需的所有功能。
它通常提供整体的手段来结合或整合用户界面、2D和3D图形、数字媒体和文件。它负责在Windows 7及以后的操作系统中开发、显示和操作用户界面、文档、图像等。它是目前开发windows应用程序的平台。
WinForms(Windows Form Application)
WinForms基本上是引入到.NET框架中的一种基于GUI的方法。在WPF和Silverlight之前,它是.NET的主要API,被用来构建GUI。除了运行时间和操作系统之外,它不需要任何类型的支持来开发一个独立的应用程序。
人们可以开发出易于部署、更新、管理的应用程序,并在连接到互联网的情况下离线工作。WinForms的开发非常简单,因为它只是基于画布上UI控件的拖放。它是开发桌面应用程序的旧平台。
WPF和WinForms的区别
WPF | WinForms |
---|---|
WPF是基于DirectX的XAML支持。 | WinForms提供了对本地Windows常用控件库的访问。 |
WPF使用标记语言来设计用户界面,允许设计复杂的用户界面。 | WinForms不使用标记语言进行设计。事实上,它使用事件驱动的控件进行设计。 |
与WinForms、复杂性和支持性相比,它可以快速渲染。 | 与WPF相比,WinForms的渲染速度较慢。 |
WPF既可用于开发和设计windows应用程序,也可用于web应用程序。 | WinForms只能用于开发和设计windows应用程序。 |
WPF有无限的UI定制和控件可以轻松定制,因为它是完全从头开始写的。 | 在WinForms中,控件是有限的,难以定制。 |
WPF更容易将用户界面与后端逻辑分开。 | 将用户界面与后端逻辑分开是很困难的。 |
WPF允许处理大型数据集,因为它有内置的 “用户界面虚拟化 “功能。 | WinForms没有 “用户界面虚拟化 “功能。 |
WPF比WinForms占用更多的内存。 | WinForms占用的内存较小。 |
当应用程序需要许多媒体类型时,它被认为是好的,创建一个有皮肤的用户界面,与XML绑定,开发一个具有类似网络导航风格的桌面应用程序。 | 如果想开发一个没有添加太多现代功能的应用程序,更多的在线资源,它被认为是好的。 |
与WinForms相比,WPF提供了有效和完全支持的数据绑定。 | WinForms提供数据绑定,但方式有限。因此,与WPF相比,它不太有效。 |
WPF还为开发应用程序提供了丰富的、互动的、动画的、硬件加速的、矢量的2D和3D功能。 | 与WPF相比,它不提供任何丰富的、互动的、动画的、硬件加速的、矢量的2D和3D功能。 |
与WinForms相比,使用WPF有点困难,耗时,而且复杂。 | 使用WinForms很简单,因为控件可以很容易地被使用,与WPF相比,它不那么费时,也不那么棘手。 |
WPF有一个内置的故事板功能和动画模型,它有能力在UI中声明性地使用业务对象。 | WinForms不提供这样的功能。 |