【问题标题】:How to launch a Windows8 Metro App by C# form application?如何通过 C# 表单应用程序启动 Windows8 Metro App?
【发布时间】:2015-09-30 08:24:42
【问题描述】:

现在我想通过 C# 表单应用程序启动 Windows 8 Metro App,但我很难找到正确的方法...

我试过这些方法(我已经安装了 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 添加:

读完这个问题:

[链接]stackoverflow.com/questions/18787609/…

我认为从 Windows 窗体运行 Metro 应用程序是不可能的。

【问题讨论】:

    标签: c# wpf microsoft-metro prism


    【解决方案1】:

    正确的启动格式是:

     Uri uri = new Uri("protocolname://anything");
       await Windows.System.Launcher.LaunchUriAsync(uri);
    

    并且,请确保您是从前台应用程序执行此操作,即不是后台任务或 Toast 通知或 Tile .. 等。

    【讨论】:

      【解决方案2】:

      看完这个问题:

      C# Mixing WinRT and Windows Forms

      我认为从 Windows 窗体运行 Metro 应用程序可能是不可能的。

      但是当我尝试下面的代码时:

                  Process p = new Process();
                  p.StartInfo.FileName = @"BINGMAPS://";
                  p.Start();
      

      BINGMAPS 运行正常。

      我是否错过了 Metro 应用程序中的任何必要设置?

      【讨论】:

        【解决方案3】:

        首先,您需要您的应用程序处理协议激活,然后在 App.xaml.cs 中的 OnActivated 事件中处理它以启动第一页或您想在 Metro 应用程序中调用的任何页面。在使用 javascript 的 C# 表单应用程序中,将当前页面内容设置为 Metro 应用程序。它会起作用的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-28
          • 1970-01-01
          • 2012-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多