Как программно выйти из приложения WPF?

Как уже говорили все, вы используете this(…), который называется вызовом явного конструктора .

Однако имейте в виду, что в таком явном выражении вызова конструктора вы можете не ссылаться на

  • на любые переменные экземпляра или
  • любые методы экземпляра или
  • любые внутренние классы , объявленные в этом классе или любом суперклассе, или
  • this или
  • super.

Как указано в JLS (§8.8.7.1).

436
задан Peter Mortensen 19 May 2018 в 19:25
поделиться

4 ответа

Для выхода из приложения вы можете вызвать

System.Windows.Application.Current.Shutdown();

Как описано в документации к методу Application.Shutdown , вы также можете изменить поведение вашего приложения при завершении работы, указав ShutdownMode ]:

Завершение работы неявно вызывается Windows Presentation Foundation (WPF) в следующих ситуациях:

  • Когда ShutdownMode имеет значение OnLastWindowClose.
  • Когда ShutdownMode установлен на OnMainWindowClose.
  • Когда пользователь завершает сеанс, и событие SessionEnding либо не обрабатывается, либо обрабатывается без отмены.

Также обратите внимание, что Application.Current.Shutdown (); может быть вызван только из потока, который создал объект Application , то есть обычно из основного потока.

741
ответ дан 22 November 2019 в 23:03
поделиться

Это должно помочь:

Application.Current.Shutdown();

Если вам интересно, вот некоторые дополнительные материалы, которые я считаю полезными:

Подробная информация о Application.Current

WPF Application LifeCycle

25
ответ дан 22 November 2019 в 23:03
поделиться

Насколько я понимаю, Application.Current.Shutdown () также имеет свой недостаток.

Если вы хотите показать окно подтверждения, позволяющее пользователям подтверждать выход или нет, Application.Current.Shutdown () необратимо.

6
ответ дан 22 November 2019 в 23:03
поделиться

Не должно быть сообщения Application.ShutDown (); или .Exit () .

Приложение - статический класс. Это не относится к текущему приложению. Вам нужно перейти к текущему приложению, а затем закрыть его следующим образом:

Application.Current.Shutdown();
16
ответ дан 22 November 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: