2010-01-21 4 views
3

Существует приложение WPF.Как узнать, что приложение закрывается

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

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

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

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

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

Решение:

есть какое-то событие может сделать это,

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

всех этих трех событий будут уволено, когда основные окна собираются быть закрыты.

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

ответ

4

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

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

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

0

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

Надеюсь, это поможет, С уважением, Tom.