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