WinForms、WPF和Metro之间的区别是什么?

11

Metro与WPF和WinForms有何不同之处?

Windows应用商店只允许销售Metro样式的应用程序吗?


如果你想通过商店销售,那么你需要学习/使用Metro。否则,你有很多选择。 - H H
1个回答

14

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

WinForms是旧的Windows格式,被WPF所取代。WPF更加优化,包含矢量图形等功能。与WinForms应用程序相比,WPF提供更好的性能。它提供了更丰富的用户界面体验。它使用XAML进行开发(UI的XML描述)。WinForms和WPF都具有现有的Windows外观和感觉。

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

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

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

我不建议再为新项目使用WinForms。只有在迁移到WPF的时间和成本太高的旧有项目中才使用它。

您可以查看MS patterns & practices发布的WPF和WinForms架构的架构指南以获得进一步的建议(目前尚未包含Metro应用程序)。 http://apparchguide.codeplex.com/

希望这有所帮助。


好的,又是一个无聊的问题。为了学习Metro风格应用程序开发,我是否也需要学习WinRT API,还是可以使用与开发Winform或WPF应用程序相同的.NET框架类? - Some Body
这取决于您想要使用的.NET类是否受支持。Windows 8引入了一个名为Windows Runtime(WinRT)的新本机运行时,它是Windows 8中新的Metro用户体验的支柱。如果您从头开始,请尝试仅使用WinRT。如果您需要使用旧的.NET类,则必须检查其兼容性并在WinRT下重新编译它们或使用可移植类库(PLC)方法。请参见http://stackoverflow.com/questions/10807123/does-net-4-0-business-apis-work-with-win-8-metro-apps - Jason De Oliveira
那么实质上,我可以使用.NET框架类在WinForms、WPF中进行开发。或者我可以使用部分支持的.NET框架类在WinRT中进行Metro开发。对吗? - Some Body
有关 .NET 和 WinRT 的未来以及它们共同使用的可能性的完整解释,请查看此处:http://www.lhotka.net/weblog/WinRTAndNET.aspx - Jason De Oliveira
@SomeBody 有一些公司专门为 Windows 8 Metro 接口创建旧的 .NET API 的遗留兼容层,例如:http://www.moderncomponents.com/,因此您可以询问他们是否能够或计划支持任何您需要的 API。 - Rafael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接