正确的UWP AppWindow上的ContentDialog

时间:2019-05-23 16:53:43

标签: c# uwp

我正在尝试Windows 10 1903更新随附的新AppWindow,以创建使用相同UI线程的多窗口UWP应用程序。

我遇到一个问题,无法在第二个窗口上使ContentDialog成为模态。 Microsoft的文档指出以下内容:“ MessageDialog将不会模态化到正确的窗口,建议改用ContentDialog。”但是,没有说明如何实现此目标...

来源:https://docs.microsoft.com/en-us/uwp/api/windows.ui.windowmanagement.appwindow

有人知道如何在正确的Window上使ContentDialog成为模态吗?

1 个答案:

答案 0 :(得分:0)

感谢您报告此问题,我们将修复ContentDialog的文档。

要在正确的窗口上打开ContentDialog,您需要将ContentDialog的XamlRoot属性设置为与AppWindow中的元素相同的XamlRoot。

noWifiDialog.XamlRoot = elementAlreadyInTheAppWindow.XamlRoot;

请注意,还有一个已知的限制,即每个线程一次只能打开一个ContentDialog,这意味着该应用程序无法在同一线程的两个窗口中显示模式对话框。在这种情况下,打开第二个对话框将引发异常,您需要尝试/捕获该异常。

WinUI错误:Only one ContentDialog can be open per thread (even with multiple AppWindows) #794