点击按钮即可启动通用应用

时间:2015-09-08 12:51:31

标签: c# wpf win-universal-app buttonclick

我在WPF制作软件。 在解决方案中,我添加了其他项目,其中一个是通用应用程序窗口。 我的问题是,我需要启动项目WPF项目的通用app,在网络中徘徊并没有找到太多。 '可能?

总之,通过单击项目WPF中的按钮,它必须以通用应用程序开头。

有可能吗?谢谢

1 个答案:

答案 0 :(得分:1)

启动Windows应用程序的方法是使用Launcher.LaunchUriAsync。

// The URI to launch
string uriToLaunch = @"cameracapture:CaptureImage?folder=C%3A%5C%5CMyImages";

// Create a Uri object from a URI string 
var uri = new Uri(uriToLaunch);

// Launch the URI
async void DefaultLaunch()
{
   // Launch the URI
   var success = await Windows.System.Launcher.LaunchUriAsync(uri);

   if (success)
   {
      // URI launched
   }
   else
   {
      // URI launch failed
   }
}

为此,您需要为您的应用设置URI方案。要处理URI关联,请在应用程序清单文件中指定相应的URI方案名称。 转到应用程序的package.appxmanifest文件并导航到声明选项卡。您想要添加“协议”类型的新声明,并且您需要指定name属性,该属性将是您希望应用程序处理的实际URI协议。例如cameracapture。

要处理传入参数,请覆盖App.xaml.cs代码中的OnActivated方法:

protected override void OnActivated(IActivatedEventArgs args)
{
    if (args.Kind == ActivationKind.Protocol)
    {
        var eventArgs = args as ProtocolActivatedEventArgs;
        if (eventArgs != null)
        {
            var uri = eventArgs.Uri;
            tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());

            // URI association launch for cameracapture.
            if (tempUri.Contains("cameracapture:CaptureImage?folder="))
            {
                // Get the folder (after "folder=").
                int folderIndex = tempUri.IndexOf("folder=") + 7;
                string folder = tempUri.Substring(folderIndex);

                // Do something with the request
            }
        }
    }
}