В приложении, которое я пишу для тестирования / изучения C #, я использую свойство hidden / visible для открытия и закрытия окон.Это приложение WPF.
В главном окне у меня есть кнопка «Закрыть», которая вызывает этот метод:
public void buttonQuit_Click(object sender, RoutedEventArgs e)
{
var message = exitmessage;
var title = exitTitle;
var result = MessageBox.Show(
message, // the message to show
title, // the title for the dialog box
MessageBoxButton.YesNo, // show two buttons: Yes and No
MessageBoxImage.Question); // show a question mark icon
// lets see what has been pressed
switch (result)
{
case System.Windows.MessageBoxResult.Yes: // Yes button pressed
CloseAllWindows();
break;
case System.Windows.MessageBoxResult.No: // No button pressed
break;
default: // Neither Yes nor No pressed (just in case)
MessageBox.Show("Oh noes! What did you press?!?!");
break;
}
}
Таким образом, я проверяю, все ли окна закрыты, включаяскрытые.Но теперь подвох;когда пользователь нажимает (в главном окне) верхний правый красный X на панели инструментов, чтобы закрыть, закрывается только это главное окно, но на заднем плане скрытые остаются.
Так что на самом деле это 2 вопроса:
Действительно ли CloseAllWindows();
действительно достаточно, чтобы закрыть приложение на 100%?
Как «поймать» событие, когда пользователь нажимает этот красный Х на панели инструментов, и заставить его также вызвать правильное событие закрытия?