Проверьте, открыто ли окно сообщения WPF C #? - PullRequest
2 голосов
/ 22 декабря 2011

У меня есть приложение WPF, в котором окно становится маленьким и перемещается в сторону, если оно деактивируется. Но я не хочу, чтобы эта функция происходила, если в окне открыто окно сообщения. Есть ли способ, которым мы можем проверить, есть ли открытое диалоговое окно в коде C #?

Ответы [ 2 ]

11 голосов
/ 22 декабря 2011

Оберните вызов вашего MessageBox в статический класс / метод.Если это называется, установите флаг, что ваш MessageBox открыт.

Примерно так:

  public class MessageBoxWrapper
  {
    public static bool IsOpen {get;set;} 

    // give all arguments you want to have for your MSGBox
    public static void Show(string messageBoxText, string caption)
    {
     IsOpen = true;
     MessageBox.Show(messageBoxText, caption);
     IsOpen = false;
    }
  }

Использование:

MessageBoxWrapper.Show("TEST","TEST");
MessageBoxWrapper.IsOpen

Но вы всегда должны использовать Оболочку для вызова MessageBox

1 голос
/ 22 декабря 2011

Установите флаг где-нибудь, когда вы открываете MessageBox.Сбросьте его, когда MessageBox закрыт.

Установите флажок при обработке деактивации.

Если существует возможность одновременного открытия более одного MessageBox, вам необходимо указатьчто некоторые думают, иначе одно закрытие заставит его выглядеть так, как будто его нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...