如何实现Chrome Metro 模式?

How to implement Chrome Metro mode?

我想在我的桌面应用程序中实现 Chrome Metro 模式。 请帮助我。

class WRLAppViewSource : public mswr::RuntimeClass<winapp::Core::IFrameworkViewSource> {
...
};

mswrw::RoInitializeWrapper roinit(RO_INIT_MULTITHREADED);
HRESULT hr;

mswr::ComPtr<winapp::Core::ICoreApplication> core_app;
hr = CreateActivationFactory(
      RuntimeClass_Windows_ApplicationModel_Core_CoreApplication,
      core_app.GetAddressOf());
HSTRING id;
hr = core_app->get_Id(&id);

auto viewSource = mswr::Make<WRLAppViewSource>();
hr = core_app->Run(viewSource.Get());

"hr = core_app->Run(viewSource.Get()); " return "hr = 0x80004015 : The class is configured to run as a security id different from the caller".

Chrome、IE 和 FireFox 使用的 "Metro mode" 环境(通常由 Windows 应用商店应用使用)不适用于通用桌面应用。

Chrome 可以做到这一点,因为它是 "New experience enabled desktop browser" 并且被用户选择为默认浏览器。如果您将默认浏览器更改为 IE,则 Chrome 将失去此功能,而 IE 将获得此功能。

如果您正在编写浏览器,请查看 Developing a new experience enabled Desktop Browser 白皮书。

如果您不是在编写浏览器,而是试图将 Windows 商店 UI 添加到现有的桌面企业应用程序,请查看 Brokered Windows Runtime Components (BWRC)。 BWRC 允许侧面加载的 .Net Windows Store 应用程序与桌面组件互操作,因此 Windows Store 应用程序可以提供连接到现有后端的现代 UI。