现在我想通过C#表单应用程序启动Windows 8 Metro应用程序,但是我很难找到正确的方法...
我尝试过这些方法(我已经安装了Metro App并注册了协议):
1
var success = await Windows.System.Launcher.LaunchUriAsync(new Uri("TestContent"));
在" TestContent"上面,我尝试了在我的计算机上注册的协议名称和Metro App的名称,但同样的错误" Access Denied"发生。
2
Process p = new Process();
p.StartInfo.FileName = "ProtocolName://";
p.Start();
这次Metro App只显示了启动画面,但没有启动整个程序。
有什么想法吗?
提前谢谢。
2015/10/01 ADD:
阅读完这个问题后:
[link] stackoverflow.com/questions/18787609 / ...
我认为从Windows窗体运行metro应用程序是不可能的。
答案 0 :(得分:0)
正确的推出格式为:
Uri uri = new Uri("protocolname://anything");
await Windows.System.Launcher.LaunchUriAsync(uri);
并且,确保您从前台应用程序执行此操作,即非后台任务或Toast通知或平铺等。
答案 1 :(得分:0)
阅读完这个问题后:
C# Mixing WinRT and Windows Forms
我认为从Windows窗体运行metro应用程序可能是不可能的。
但是当我尝试下面的代码时:
Process p = new Process();
p.StartInfo.FileName = @"BINGMAPS://";
p.Start();
BINGMAPS正常运行。
我是否错过了Metro App中的任何必要设置?
答案 2 :(得分:0)
首先,您需要您的应用程序来处理协议激活,然后在OnActivated事件中的App.xaml.cs中处理它以启动您要在Metro应用程序中调用的第一页或任何页面。在C#表单应用程序中使用javascript将当前页面内容设置为metro应用程序。它会起作用。