как узнать, что приложение закрывается - PullRequest
3 голосов
/ 22 января 2010

Есть приложение WPF.

Я хочу войти, когда приложение закрыто.

но я не могу изменить приложение (некоторые ограничения, только потому, что бизнес).

Итак, я создаю невидимый компонент формы вживую внутри существующего приложения, добавляю его как библиотеку dll, чтобы не нужно было изменять существующее приложение.

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

Есть ли какая-нибудь функция или обработчик событий, которые я могу использовать?

Решение:

есть события, которые могут это сделать,

выгружен закрытие Закрыто

все эти три события будут запущены, когда основные окна будут закрыты.

Проблема решена

Ответы [ 3 ]

4 голосов
/ 22 января 2010

Класс System.Windows.Window имеет виртуальный метод OnClosing(CancelEventArgs), который можно переопределить для этого, и событие Closing, которое можно обработать.

Обычно я фиксирую эти события и передаю информацию классам Page, которые, к сожалению, не содержат таких методов или событий.

Каждое окно будет запускать эти методы, когда оно закрыто, поэтому нет необходимости подключать какие-либо сообщения между родительским и дочерним окнами. И, я полагаю, диспетчер задач сначала попытается выполнить обычное завершение работы приложения, что вызовет закрытие событий, если что-то еще, например диалоговое окно, не помешает этому. Только после того, как это будет предпринято, TM спросит, нужно ли выполнить ненормальный конец для приложения, которое, очевидно, обойдет событие закрытия.

0 голосов
/ 22 января 2010

У меня до сих пор нет знаний о WPF, но я знаю из winforms, есть событие Closing из класса Form, которое вы можете перехватить и представить диалог «Это приложение закрывается, хотите ли вы продолжить и т. д. 'и установить для флага Cancel значение true, чтобы прервать закрытие формы, также есть событие ApplicationExit из класса Application, вы можете перехватить это, если хотите обработать закрытие приложения.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

0 голосов
/ 22 января 2010

вы проверяли событие FormClosing?

...