WPF或Windows窗体


75

我已经使用C#控制台应用程序大约一年了,我想继续创建GUI应用程序。除了基本的Java应用程序外,我从未进行过任何GUI开发,但我想继续使用C#。我应该开始学习Windows窗体还是直接跳到WPF?有很大的不同吗?WPF是建立在Windows窗体之上还是完全不同?


我发现这个网站非常野趣:educba.com/winforms-vs-wpf
丹尼尔·默勒

Answers:


74

如果您只是刚刚起步,请直接进入WPF。

它使您可以开始使用标记来创建丰富的界面来定义您的界面,而无需教您可能从Windows Forms学习到的不良习惯(对于WPF)。


2
+1我绝对同意。WPF比Windows Forms灵活得多,并且在GUI开发中是长期的。在使用基于XML的布局方面,它非常接近HTML。对于Windows Forms而言,目前最好的论据是,如果您有一个具有丰富使用它经验的开发团队。WPF是未来,它已经是Windows窗体之前的跨越式发展。
sidney.andrews's

2
+1但是,由于早期版本中的字体问题,WPF仅可用于.NET 4.0+,因此在应用程序部署时请记住这一点。
乔什(Josh)2010年

13
@Fauxide WPF在.NET 3.5中可用。内置了许多有用的应用程序...字体问题并不是每个人都能看到的。
贾斯汀·尼斯纳

2
+1-WinForms做多年了,现在已在WPF中使用。永远不要回头;)WPF更好,更快。多年来在Winforms中仅使用3rd party控件-现在我使用它们,但不是唯一(即标准控件可用,3r party不是替代品而是新东西)。特别是对于.net 4.0-wpf岩石。哦,我做了高性能的数据可视化(又名金融工具交易应用程序)。
TomTom 2010年

2
+1 WPF的学习曲线有些陡峭,但是一旦您学会了它,它的功能将非常强大。不过,请确保从MVVM模式开始,这很有意义。
Grokys

23

两者是完全不同的技术。它们确实在两个方向上都提供了一些互操作性层,但除此之外没有什么共同点。Windows窗体或多或少是Win32 / MFC之上的轻量级包装,这意味着它在.NET中的可扩展性并不是在所有情况下都很好。WPF是从头开始实现的新UI框架。自定义现有类型时,WPF也更加灵活。

但是,至少从我的经验来看,Windows窗体似乎是该行业中更常用的桌面UI框架。尽管WPF提供Silverlight和XBAP应用程序,但Windows窗体不能与Web开发一起使用。

如果您以前做过UI开发,我敢说Windows Forms更易于学习,因为它遵循了更多传统的编程范例。WPF的编程模型与此完全不同。尽管WPF可以与Windows Forms相同的方式使用,但是只有在您接受WPF提供的数据绑定和封装后,才能实现其大多数优点。

尽管陈述了一些支持Windows窗体的观点,但是如果您只想学习UI框架,那么选择WPF而不是Windows窗体对我来说就不难了。它在所有方面都优于Windows Forms。我只希望软件行业能够在更大范围内适应它!(尽管自从有了网络以来,就不再像其他人那样编写桌面应用程序了。)


10

两种技术都有其优点和缺点。

WPF更适合跨平台开发和创建“华丽的” GUI。但是,它需要比WinForms更新的.net框架,并且需要与dx9兼容的GPU或更高版本(大多数人会拥有)。

但是创建界面/连接所有事件等要花费更多的精力。

WinForms仍然是一项强大的技术,通常可以以比WPF更快的速度进行开发,但是最终,这两种技术都可以用于实现同一目标。 但是WPF是“较新的”标准。

WinForms通常用于开发业务应用程序,而WPF通常用于创建更多基于最终用户的软件,应用程序等。


5

WPF提供了非常丰富的功能来构建极其复杂的用户界面。它简化了界面中硬件加速图形的集成。但是,Visual Studio WPF设计器确实很糟糕(我几乎从未使用过)。我还认为WPF更为复杂,并且从一开始就比较困难。但这当然是主观的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.