不完全是。WinRT 和 Windows Phone Runtime 的情况类似于 WPF/Silverlight。有重叠,但不是 100% 覆盖。为了解决这个问题,Microsoft 鼓励使用可移植类库来面向多个平台(因为每个平台都有自己的运行时)。有关 PCL 的更多信息:http: //msdn.microsoft.com/en-us/library/gg597391.aspx
此外,即使您设法让大多数类在可移植类库下工作,您仍然必须为每个平台编写单独的用户界面(PCL 不支持共享 UI)。虽然这可能看起来令人不安,但它实际上比你想象的更必要。这是关于 Microsoft 在共享 XAML UI 方面建议的链接。
这不应被视为在 Windows Phone 8 和 Windows 8 之间共享的完整障碍。明确的指导是为每个平台单独设计和构建 UI,并接受每个平台的设计指南。技术上可以绕过这些障碍。您可以在页面初始化期间从代码创建您的 UI。您可以在运行时从资源中加载特定于平台的 XAML,并将其作为字符串注入页面。然而,这些技术都没有规模化,它们使构建您的核心资产(您的应用程序在用户眼中的外观)成为一项乏味且容易出错的任务。通过尝试共享应用程序逻辑、数据模型、视图模型等,您的代码共享投资将在您的应用程序堆栈中为您提供更大的回报。
基本上,微软说的是专门为平台设计用户界面,因为在手机(小屏幕)上运行的应用程序应该具有与在平板电脑/台式机(大屏幕)上运行的应用程序不同的用户界面。
至于在不同平台上运行 WinRT 应用程序......是的,你可以。微软表示,用 WinRT 编写的应用程序可以在 Windows 8 和 WOA(ARM 上的 Windows)上运行。这是来自微软的一个链接,谈论这个。但是,我的答案的第一部分仍然有效……如果您想针对不同的运行时(WinRT/Windows Phone 运行时)……然后使用可移植类库。选择“Windows Store”和“Windows Phone 8”将允许您的代码在 Windows 8 x86/x64/ARM 和 Windows Phone 8 上运行。