Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF或Windows窗体_C#_Wpf_Windows_Winforms_C# 4.0 - Fatal编程技术网

C# WPF或Windows窗体

C# WPF或Windows窗体,c#,wpf,windows,winforms,c#-4.0,C#,Wpf,Windows,Winforms,C# 4.0,我已经玩了大约一年的C#控制台应用程序,我想继续创建GUI应用程序。除了基本Java应用程序之外,我从未做过任何GUI开发,但我想继续使用C#。我应该开始学习Windows窗体还是直接跳到WPF?有很大的区别吗?WPF是在Windows窗体之上构建的还是完全不同的?如果您刚刚开始,请直接跳入WPF 它将允许您开始使用标记来定义您的界面,而不必教您从Windows窗体中可能学到的坏习惯(对于WPF)。这两种技术完全不同。它们确实为两个方向提供了一些互操作性层,但除此之外,它们没有任何共同之处。Wi

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

如果您刚刚开始,请直接跳入WPF


它将允许您开始使用标记来定义您的界面,而不必教您从Windows窗体中可能学到的坏习惯(对于WPF)。

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

然而,至少从我的经验来看,Windows窗体似乎是业界更常用的桌面UI框架。虽然WPF提供Silverlight和XBAP应用程序,但Windows窗体不能用于web开发

如果您以前做过UI开发,我敢说Windows窗体更容易学习,因为它遵循了更传统的编程模式。WPF的编程模型与此完全不同。虽然WPF可以与Windows窗体以相同的方式使用,但在您接受WPF提供的数据绑定和封装之前,它的大部分好处是无法实现的


尽管声明了一些支持Windows窗体的观点,但如果您只想学习UI框架,那么选择WPF而不是Windows窗体对我来说将是一件轻而易举的事情。它在所有方面都优于Windows窗体。我只希望整个软件行业能够更大规模地适应它!(虽然自从我们有了web以后,不再像任何人那样编写桌面应用程序了。)

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

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

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

但是,创建接口/连接所有事件等更为复杂

WinForms仍然是一种功能强大的技术,通常可以比WPF更快地开发。然而,最终,这两种技术可以用来实现相同的目标。然而,WPF是“较新”的标准


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

+1我完全同意。WPF比Windows窗体灵活得多,并且是GUI开发的长期目标。在如何使用基于XML的布局方面,它与HTML非常接近。对于Windows窗体,现在最好的论据是您是否有一个拥有丰富使用经验的开发团队。WPF是未来的趋势,它已经超越了Windows窗体。+1但是,由于早期版本中的字体问题,WPF只能在.NET 4.0+中使用,因此在应用程序部署时请记住这一点。@Fauxide WPF在.NET 3.5中可用。已经有很多有用的应用程序被开发出来了…字体问题并不是每个人都能阻止的。多年来,WinForms已经完成了+1个,现在已经在WPF中了。永不回头;)WPF更好,更快。多年来,我在winforms中只使用第三方控件-现在我使用它们,但不仅仅是(即,标准控件可用,3r party不是替代品,而是新东西)。尤其是.NET4.0-wpf岩石。哦,我做的是高性能数据可视化(也称为金融工具交易应用程序)。+1 WPF有一点陡峭的学习曲线,但一旦你学会了,它的功能就会非常强大。不过,请确保从MVVM模式开始,这很有意义。我发现这个网站非常有趣: