如何通过C#表单应用程序启动Windows8 Metro App?

时间:2015-09-30 08:24:42

标签: c# wpf microsoft-metro prism

现在我想通过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应用程序是不可能的。

3 个答案:

答案 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应用程序。它会起作用。