2010-04-21 95 views
64

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

回答

61

如果你刚开始,直接跳到WPF。

它将允许您开始制作丰富的界面,使用标记定义您的界面,而无需告知您将从Windows窗体学习到的可能的不良习惯(对于WPF)。

+2

+1我绝对同意。 WPF比Windows Forms更加灵活,并且它在GUI开发中是长期的。在如何使用基于XML的布局方面,它非常接近HTML。现在,Windows Forms的最佳参数是如果您有一个具有使用它的主要经验的开发团队。 WPF是未来,它已经在Windows Forms之前跃过了一大步。 – 2010-04-21 17:35:17

+2

+1但是,由于以前版本中的字体问题,WPF仅适用于.NET 4.0+,因此请记住应用程序部署。 – Josh 2010-04-21 17:38:12

+13

@Fauxide WPF在.NET 3.5中可用。已经有很多有用的应用程序构建...字体问题不是每个人都可以看到的。 – 2010-04-21 17:39:49

22

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

但是,至少从我的经验来看,Windows Forms似乎是业内比较常用的桌面UI框架。虽然WPF提供了Silverlight和XBAP应用程序,但Windows Forms不能用于Web开发。

如果你之前做过任何UI开发,我敢说Windows Forms更容易学习,因为它遵循更传统的编程范例。 WPF的编程模型与此完全不同。虽然WPF可以像Windows窗体一样使用,但只有在您接受WPF提供的数据绑定和封装之后才能实现WPF的大部分优点。

尽管指出了一些有利于Windows窗体的观点选择Windows窗体上的WPF对我来说是一件容易的事情,如果你只想学习一个UI框架的话。在各方面都优于Windows Forms。我只希望整个软件行业能够更大规模地适应它! (虽然不像任何人自从我们上网以后再编写桌面应用程序)。

+0

+1完全同意。 – 2010-04-21 18:09:57

3

WPF提供了非常丰富的工具来构建极其复杂的用户界面。它简化了界面中硬件加速图形的集成。但是,Visual Studio WPF设计器非常糟糕(我几乎从不使用它)。我也认为WPF要复杂得多,而且开始时比较困难。但这当然是主观的。

+0

我手工编写xaml:D并使用设计器来设置边缘和东西。没有其他的。 – 2015-11-15 21:50:21

4

这两种技术都有他们的专业和技术。

WPF更适合跨平台开发并创建'华丽'的GUI。然而,它需要比WinForms更新的.net框架,并且需要dx9兼容GPU或更高(大多数人都会拥有)。

但它是更复杂一点,以创建接口/线了所有的事件等

的WinForms仍然常常可以比WPF更快的速度然而开发出了强大的技术,到底,这两项技术都可以用来实现同样的目标。然而,WPF是'新'标准。

的WinForms通常用于开发商业应用程序,而WPF经常被用来创建软件的最终用户基于位,应用等