WPF Tips: Не доверяйте ложной модальности MessageBox.Show - ее надо заслужить.
Если вы расчитываете на модальности MessageBox.Show, то должен заметить, что ее легко обойти, есил MessageBox.Show("текст") вызывается в момент, когда приложение не активно.
После этого вы можете закрыть окно приложения или выполнить на нем какие-либо действия, и MessageBox, как обычно, не помешает вам это сделать.
Это можно поправить, всегда передавая нужное вам окно в перегрузки метода MessageBox.Show, где первым параметром принимается объект класса Window.
Только учтите следующие замечания:
После этого вы можете закрыть окно приложения или выполнить на нем какие-либо действия, и MessageBox, как обычно, не помешает вам это сделать.
Это можно поправить, всегда передавая нужное вам окно в перегрузки метода MessageBox.Show, где первым параметром принимается объект класса Window.
Только учтите следующие замечания:
- Нельзя передать null в эти перегруженные методы.
- Если вам кажется неправильным тащить за собой целевое окно и вы захотите использовать Application.Current.MainWindow, то учтите, что там может быть null, если еще ни одного окна не открывалось или вы сами можете где-то в коде задать Application.Current.MainWindow = null;,
а MessageBox.Show при этом порвет (выпадет на исключении)!
Нужет будет утильный метод который проверяет Application.Current.MainWindow на null и вызывает перегрузку принимающую целевое окно или нет.
Комментарии
Отправить комментарий