2015-04-06 77 views
0

我希望在我的桌面应用中实现类似Chrome Metro模式。 请帮帮我。如何实施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->运行(viewSource.Get());” 返回 “HR = 0x80004015:类被配置为作为一个安全ID从呼叫者不同运行”。

+0

命令行是“-ServerName:DefaultBrowserServer”。 – Felix 2015-04-06 13:37:30

回答

0

Chrome,IE和FireFox使用的“Metro模式”环境(通常由Windows应用商店应用使用)不适用于通用桌面应用。

Chrome可以执行此操作,因为它是“启用了新体验的桌面浏览器”,并且被用户选为默认浏览器。如果您将默认浏览器更改为IE,则Chrome将失去此功能,IE将获得此权限。

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

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