1. 程式人生 > 其它 >UWP 確認是否有彈窗顯示

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彈窗被展示
   }
}

參考資料

How to check if ANY ContentDialog is open?

學習技術最好的文件就是官方文件,沒有之一。
還有學習資料Microsoft LearnCSharp Learn

My Note
如果,你認為閱讀這篇部落格讓你有些收穫,不妨點選一下右下角的推薦按鈕。
如果,你希望更容易地發現我的新部落格,不妨點選一下關注