本文整理自网络,侵删。
WPF对比WinForms
在上一节,我们具体讨论了什么是 WPF,当中也提到了 WinForms。这两个框架的设计目标基本相同,但实际上两者之间的差异非常巨大,我会在这一节对这方面进行分析。如果你没有 WinForms 或者其他 GUI 框架的开发经验,你可以选择跳过这个章节,不过要是你对他们的差异有兴趣的话,那就继续看吧。
WinForms 与 WPF 间最大的差异在于 WinForms 只是单纯在 Windows 标准控制项 (例如:TextBox) 上迭一层,而 WPF 几乎是全面从零建构,并未依赖任何 Windows 标准控制项。这差异看起来很微妙,实则不然。如果你曾经使用过依赖 Win32/WinAPI 的框架,就一定会注意到这种差异。
举个例子,要是想实现一个带有图像和文本的按钮,在 WinForms 里面,你只能自己用画图之类的方式特意去实现一个(或者用第三方控件),因爲”一个带有图像和文本的按钮”并不是一个标准的 Windows 控件。而在 WPF 里面,这可以通过递归组合的方式轻鬆实现,具体来讲,就是在按钮(Button)中放置一个图像(Image)和文本方块(TextBlock)而已。实际上,大部分的 WPF 控件都能用这种方式随意组合,一个控件可以包含其他任何控件,你可以透过组合各种基本控件来产生複合控件,以满足不同的複杂的需求,而这种灵活正是 WinForms 所不具备的。
WPF这种灵活性所带来的缺点是:你需要做更多的事来做出在winForm中很容易做出的内容。 因为WPF是专为你所想要的内容而生的。你或多或少在一开始会有这种感觉,比如当你试着用WPF来实现一个具有图片元素和华丽字体的ListView的时候,WinForms的ListView控件用一句话就能完成了。
这只是两者的一个区别,但是当你使用WPF时,你会发现这其实是造成其他区别的根本原因--WPF仅仅是在用自己的方式来实现所有的东西,不论好坏。你不再局限于windows的解决方案。然而为了得到这种灵活性,当你真正想要做出windows风格的东西时,往往需要花费更多的精力
以下是WPF和WinForms关键优势的主观描述。应该可以让你更好地选择用哪一种技术。
WPF的优势
- 更年轻,与时俱进
- 微软在很多新的应用中使用它,例如Visual Studio
- 更灵活,你不需要自己造或者购买新的控件,就可以完成更多的工作
- 当你使用第三方控件时,开发人员更青睐于新生的WPF
- XAML可以让你更简单地创建和修改你的GUI(界面),并且使前台设计人员和后台编程人员可以分离(C#,VB.NET等等)
- 数据绑定使数据和界面的分离更加简洁
- 使用硬件加速来描绘GUI(界面),性能更好
- 可以允许给Windows应用和Web应用同时创建用户接口
WinForms的优势
- 更久远,因此久经考验
- 已经有很多免费或收费的第三方控件供你使用
- 就WinForms而言,在Visual Studio中的设计器仍然比WPF更好,在WPF中更多的工作需要你自己来完成。
标签:WPF
相关阅读 >>
更多相关阅读请进入《WPF》频道 >>
C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
相关推荐
评论
管理员已关闭评论功能...