所有是否包含在WPF中的WinForm的功能? 使用传统的WindowsForm而不是WPF有什么特别的优势吗?
答案 0 :(得分:5)
理论上你可以使用Winforms几乎所有你用WPF做的事情,但在某些情况下你需要更多代码,特别是关于图形效果。
与WPF相比,Winforms的一些优点可能是:
答案 1 :(得分:2)
这取决于你的问题。 WPF是一种更新的技术,可以更好地分离关注点,更容易灵活渲染,并允许UI的硬件加速。
任何技术的优势都特定于项目的约束和要求。例如:WinForms的一个优点是,如果您只部署到没有/不能拥有.NET 3+的Windows XP计算机,因为在.NET 2上只能使用WinForms。
答案 2 :(得分:2)
Winforms与WPF相比只有很少的优势:
WPF上的所有其他内容都更好。
答案 3 :(得分:2)
这有点像询问为什么要在Flash电影中显示HTML表格。 首先:你可以随意混合,即使在元素级别(使用WinFormsControlHosts)。但你应该问问自己为什么要混合这些技术。
听起来你是WPF的新手,所以请注意,虽然WPF可以做所有WinForms可以做的事情,但是你前面有一个非常陡峭的学习曲线。标记世界的情况有所不同......
混合的原因只能是金融性的。您要么没有时间/资金/资源来在WPF中实施它,要么学习如何做到这一点,或者您的客户希望按时交付,并且不会对代码的质量感到遗憾。也许你已经在第三方WinForms组件上花了很多钱,这可以节省数小时的恶劣开发。
另一方面,有理由不混合:
WPF支持硬件加速,WinForms仅渲染为Cpu。我没有测试使用互操作时渲染模式究竟发生了什么。
正在更新WPF。在.Net 4.5中,它获得了更多的DataBinding工具(无论如何都比WinForms好)。自.Net 2.0
总结一下:你的案子有混合的理由吗?如果不是这样,请不要。 如果绝对必要,我会通过添加WPF对话框为Winforms应用程序添加功能,但总是试图避免反过来。
答案 4 :(得分:1)
也许是因为它更容易?但我不会做winforms。和WPF一起去吧。如果你觉得它太难了,你就不会被迫做MVVM。对于小型应用程序,MVVM可能过度杀伤。