UWP 確認是否有彈窗顯示
阿新 • • 發佈:2022-02-17
當應用已存在彈窗時,再顯示其他彈窗,會提示
某個非同步操作沒有正常啟動。
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彈窗被展示
}
}
參考資料
How to check if ANY ContentDialog is open?
學習技術最好的文件就是【官方文件】,沒有之一。
還有學習資料【Microsoft Learn】、【CSharp Learn 】、【My Note】。
如果,你認為閱讀這篇部落格讓你有些收穫,不妨點選一下右下角的【推薦】按鈕。
如果,你希望更容易地發現我的新部落格,不妨點選一下【關注】。