WPF的缩写指微软的WindowsPresentationFoundation,而WinForms是WindowsFormsApplications的简单组合。这两个都是微软的Windows应用程序图形用户界面,开发人员可以使用它们来开发Windows桌面应用程序。本文重点介绍两种开发Windows桌面应用程序的方法之间的主要区别,这些方法可以在现代系统开发中发挥更好的作用。
WindowsFormsWinForms于年2月作为.NetFramework的一部分引入。在很大程度上,WinForms允许开发人员在Windows窗体上拖放控件,并允许开发人员使用可以具有C#,VB.NET或任何其他.NET语言的代码隐藏文件来操纵这些控件。每个WinForms控件都是一个类的实例,因为WinForms作为具有一组C++类的包装器存在。Microsoft的VisualStudio使WinForms的开发更容易,因为开发人员可以轻松地从工具箱中拖放控件。
WinForms工具箱中的控件在WinForms桌面应用程序中,开发人员只能访问他们可以在其中操纵控件事件的代码隐藏文件。WinForms桌面应用程序在控件的功能和应用程序行为方面有其局限性,这将在下一部分中揭示。
WPF桌面应用程序与WinForms不同,WPF的体系结构包含三个主要组件:apresentationframework,presentationcore,andmallcore。WPF并不完全依赖于标准Windows控件,因此是一种独立方式。年,Microsoft引入了WindowsPresentationFoundation(WPF),以交替WinForms来进行.NetFramework桌面应用程序开发。这一交替带来了桌面应用程序开发中的许多变化。首先,WPF将设计人员和程序员分开,可以使用VisualStudio或Blend分别设计UI,而开发人员可以使用代码隐藏文件来操纵控件事件。
WPF使用XAML创建控件,其文件结构更像ASP.NET,您可以自由使用设计器或编写XAML代码来创建控件。使用CanvasPanel的设计师仍然可以像在WinForms中一样在Windows页面上拖放控件。WPF带来的主要区别是XAML文件和对XAML文件附带的可见设计器的访问。
WPF可视化设计和XAML文件编辑上图显示了WPF应用程序的布局,其中在Designer旁边显示了XAML文件。
WPF项目的文件结构如下:
WPF项目的文件结构每个窗口或页面都有一个用于添加控件的.xaml文件以及一个.cs,.vb等文件,后者是代码隐藏文件,更像是ASP.NET方式。与WinForms不同,WPF生成一个初始MainWindow来启动应用程序,并且要更改启动窗口,可以在App.xaml文件中执行此操作。WPF主窗体启动配置该文件充当应用程序的条目。WPF与WinForms的其他显著区别是控件。要添加控件,您只需要编写简单的XAML代码。例如,要在WPF窗口中添加文本框,你可以写如下代码实现:
Windowx:Class="WpfApp1.MainWindow"xmlns="