UWP 模式 Window

UWP Modal Window

我想在我的通用 Windows 平台应用程序 (C#) 的屏幕上显示模态 window,就像标准邮件应用程序在您添加帐户时所做的那样。或者当您在应用程序中登录服务(如 Facebook)时。

Windows 具有模态的邮件应用 window:

您可以移动这个 window,但它不在任务栏中并且是模式的。

有人知道怎么做吗?它不应该那么难,但我找不到任何相关信息。

可以创建可移动的 window,但不能使其成为模态。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f1328991-b5e5-48e1-b4ff-536a0013ef9f/is-it-possible-to-open-a-new-window-in-uwp-apps?forum=wpdevelop

在邮件应用程序中发生的事情可能是应用程序与应用程序之间的通信 "LaunchForResults" - 我不确定,但看起来是这样。

使用 Windows 10 个通用应用程序,您可以使用 LaunchForResults 让一个应用程序调用另一个应用程序。被调用的应用程序将始终像调用应用程序的模态对话框一样。 您可以使用 ValueSet 双向传递任何可序列化对象。

可在此处找到有关 LaunchForResult 的详细信息: https://msdn.microsoft.com/en-us/library/windows/apps/mt269386.aspx

正如@Daniel Meixner 所说,添加此邮件应用程序的帐户交互是通过 LaunchForResults 调用另一个可能的应用程序。

使用系统的 Task Manager,您可以看到,当您启动此邮件应用程序时,它会启动一个名为 "Mail" 的进程,并且当您从此应用程序添加帐户时,它以应用程序的名称 "Email and accounts".

启动另一个进程

如果我们用Process Explorer查看这些进程,Mail app的进程是这样​​的:

添加账号的过程是这样的:

他们在不同的进程中,有不同的包名。

所以我创建了两个应用程序,并使用 LaunchForResult 进行这些应用程序之间的通信,它们就像系统的邮件应用程序一样。

如果只想启动系统的"add account"应用,可以参考官方UserDataAccountManager sample