我在WPF制作软件。 在解决方案中,我添加了其他项目,其中一个是通用应用程序窗口。 我的问题是,我需要启动项目WPF项目的通用app,在网络中徘徊并没有找到太多。 '可能?
总之,通过单击项目WPF中的按钮,它必须以通用应用程序开头。
有可能吗?谢谢
答案 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
}
}
}
}