Я не знаю, как работает ваше приложение, на основе вашего примера кода у меня есть два решения.
Решение 1: - Каждое окно имеет свойство DialogResult
.Внутри события OnClosing
назначьте DialogResult = true;
и вызовите метод Shutdown .Окна, отвечающие за вызов, получат результат из возвращаемого значения ShowDialog()
method
Например: -
private void SecondWindow_OnClosing(object sender, CancelEventArgs e)
{
DialogResult = true;
System.Windows.Application.Current.Shutdown();
}
Событие ниже, от первого экрана, вызывающее второеОкно.
private void Button_Click(object sender, RoutedEventArgs e)
{
SecondWindow secondWindow = new SecondWindow();
var dialogResult = secondWindow.ShowDialog();
if (dialogResult.HasValue && dialogResult.Value == false)
{
// any code of yours which must not be executed after the second
// window has closed the process
}
}
После того, как DialogResult
назначено true , первое окно будет проверять, только если оно ложно, выполнить приведенный ниже код или игнорировать.
Решение 2: - Мы получим текущий процесс запуска приложения и уничтожим весь процесс, который является целым приложением.
private void SecondWindow_OnClosing(object sender, CancelEventArgs e)
{
Process.GetCurrentProcess().Kill();
}