问题 winforms,WPF和metro之间的区别? [关闭]


Metro与WPF和WinForms有何不同?

是否只允许在Windows App Store上销售Metro风格的应用程序?


2054
2018-06-14 20:18


起源

如果 你想通过商店出售然后你需要学习/使用Metro,是的。否则你有很多选择。 - Henk Holterman


答案:


Metro Apps是专为Windows 8编写的应用程序,具有Windows 8提供的所有优势。它们可以放在Windows 8应用商店中。 http://devcomponents.com/blog/?p=1061

WinForms是旧的Windows格式,有点被WPF取代。 WPF更加优化,包含例如矢量图形。与WinForms应用程序相比,WPF提供了更好的性能。它提供了更丰富的UI体验。它使用XAML进行开发(UI的XML描述)。 WinForms和WPF为您提供现有的Windows外观。

Metro Apps看起来更像Windows Phone 7应用程序,但具有更多功能(但我认为将来两者都会融合)。它们主要针对平板电脑市场和触摸屏(以及未来的混合设备)。 Metro应用程序可以与IPad应用程序进行比较,但更丰富,并且具有Windows操作系统的全部功能。

如果您想编写使用鼠标接口并且像当前Windows应用程序一样工作的标准Windows应用程序,我建议使用WPF。

如果您想专门针对Windows 8市场并创建触摸友好的应用程序,则必须使用Metro应用程序。

我不建议再将WinForms用于新项目。仅适用于迁移到WPF的旧项目,其时间和金钱过于昂贵。

您可以查看由MS模式和实践为WPF和WinForms体系结构发布的体系结构指南,以获取进一步的建议(它还不包含Metro Apps)。 http://apparchguide.codeplex.com/

希望有所帮助。


14
2018-06-14 20:25



好吧,另一个蹩脚的问题。要学习地铁风格的应用程序开发,我还必须学习winRT api,或者我会使用相同的.net框架类来开发winform或WPF应用程序。 - Some Body
这取决于您是否支持要使用的.NET类。 Windows 8引入了一个名为Windows Runtime(WinRT)的新本机运行时,它是Windows 8中新的Metro用户体验的支柱。如果从头开始,您应该尝试仅使用WinRT。如果需要使用旧的.NET类,则必须检查兼容性并在WinRT下重新编译它们或使用可移植类库(PLC)方法。看这里 stackoverflow.com/questions/10807123/... - Jason De Oliveira
所以从本质上讲,我可以使用.NET框架类在winforms中开发WPF。或者我可以使用部分支持的winRT .NET框架类在Metro中开发。对 ? - Some Body
有关.NET和WinRT未来的完整解释以及将它们结合使用的可能性,请查看此处 lhotka.net/weblog/WinRTAndNET.aspx - Jason De Oliveira
@SomeBody有些公司专门为一些适用于Windows 8 Metro界面的旧.NET API创建旧版兼容层,如下所示: moderncomponents.com,因此您可以询问他们是否可以或计划支持您需要的任何API。 - Rafael