Как проверить, открыт ли ЛЮБОЙ ContentDialog? - PullRequest
0 голосов
/ 01 января 2019

Таким образом, мы можем иметь только один открытый диалог контента за раз.Это отлично.Но в моем приложении есть несколько возможных диалогов содержимого, которые можно открыть, и я хотел бы избежать создания своей собственной переменной, потому что я могу забыть добавить ее где-нибудь, и все приложение рухнет (поскольку попытка открыть второй диалог содержимого вызывает исключение).

Итак, мой вопрос: как проверить, открыт ли любой ContentDialog?

Примечание:

  1. Я не хочупроверить для конкретного ContentDialog.
  2. Я бы не хотел создавать свои собственные переменные.

1 Ответ

0 голосов
/ 01 января 2019

ContentDialog отображается в PopupRoot, поэтому использование VisualTreeHelper.GetOpenPopups() поможет вам его получить.

var openedpopups = VisualTreeHelper.GetOpenPopups(Window.Current);
foreach (var popup in openedpopups)
{
   if(popup.Child is ContentDialog)
   {
      //some content dialog is open.
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...