有没有办法编写一个WinRT(Metro)应用程序,能够在Windows 7和Vista上运行?

14 浏览
0 Comments

有没有办法编写一个WinRT(Metro)应用程序,能够在Windows 7和Vista上运行?

我们不能把那些不能升级到Windows 8的客户长期留在枯槁中。然而,我们的应用程序也有“平板电脑”/“触摸”版本的需求

那么我们怎么能从单个代码库中支持带有Metro的触摸浏览Windows 8以及我们现有的客户呢?

当WPF出现后,微软经过了很多“推动”之后,才让它能够在Windows XP上运行——WinRT是否也有类似的讨论?

(由于XP支持正在逐步减少,我并不期望任何解决方案能在XP上工作。)

另请参见:ARM版本的Windows 8只能运行Metro(WinRt)风格的应用程序吗?

admin 更改状态以发布 2023年5月21日
0
0 Comments

我唯一能想到的方法是使用HTML5/CSS3/JS来实现您的应用程序,并尽可能避免使用WinRT API-这取决于您的应用程序需要做什么(例如,使用HTML5画布可以轻松创建可移植的2D图形)。

然后,在Win8上,您将将其打包为Metro Web应用程序。对于Win7及以下版本,您可以编写一个简单的应用程序,将您选择的浏览器(不是IE9,因为它不适用于XP-因此是Firefox或Chrome)嵌入,并在嵌入的浏览器中加载您的HTML5应用程序。

0
0 Comments

最好的答案是您不想将同一个应用程序运行在Windows 7和Windows 8 Metro样式上。最适合鼠标和键盘的用户界面(Windows 7)不适合于触摸优先的展示,反之亦然。为这两个不同的世界重新设想用户界面是重要的。

话虽如此,如果您想共享大量的代码,有两个选择:
1)主要用JavaScript /HTML5编写。 这将允许您重用许多资源(特别是业务逻辑部分)。
2)使用(桌面)Silverlight编写。 Silverlight XAML与Windows XAML最接近。 WPF则更远,以后需要更多重新工作。

无论哪种情况,编写跨平台代码时都应查看并遵循使用的原则。了解平台依赖项并将其隔离在间接界限之后。您要本地化所有必须更改的代码。例如,您不希望在代码中散布对.Net System.IO.File API的调用,而这些API将必须更改为Windows.System.Storage调用。 相反,您希望本地化在一个可以以后修改的函数中。

0