UWP 确认是否有弹窗显示
当应用已存在弹窗时,再显示其他弹窗,会提示
某个异步操作没有正常启动。
Only a single ContentDialog can be open at any time.
at Windows.UI.Xaml.Controls.ContentDialog.ShowAsync()
at .......
at System.Threading.WinRTSynchronizationContextBase.Invoker.InvokeCore()
解决思路:判断当前是否有弹窗被展示
protected bool IsAnyContentDialogOpen()
{
return VisualTreeHelper.GetOpenPopups(Window.Current).Count > 0;
}
或者
var openedpopups = VisualTreeHelper.GetOpenPopups(Window.Current);
foreach (var popup in openedpopups)
{
if(popup.Child is ContentDialog)
{
//有ContentDialog弹窗被展示
}
}
参考资料
学习技术最好的文档就是【官方文档】,没有之一。
还有学习资料【Microsoft Learn】、【CSharp Learn】、【My Note】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。