2010-01-21 5 views
3

WPF 응용 프로그램이 있습니다.응용 프로그램을 종료하는 방법을 알 수 있습니다.

응용 프로그램이 닫힐 때 기록하고 싶습니다.

하지만 애플리케이션을 수정할 수 없습니다 (일부 제한 사항, 비즈니스에만 해당).

그래서 보이지 않는 양식 구성 요소를 기존 응용 프로그램 내에서 라이브로 만들면 dll 라이브러리로 추가되므로 기존 응용 프로그램을 수정할 필요가 없습니다.

문제는 보이지 않는 구성 요소가 응용 프로그램이 종료되고 있음을 어떻게 알 수 있습니까?

내가 사용할 수있는 함수 나 이벤트 핸들러가 있습니까?

솔루션 :

메인 창을 닫아야 할 것입니다 때 어떤 이벤트가 발생됩니다 휴일

이 모든 세 가지 이벤트를 닫기

언로드 것을 할 수있다.

문제가 해결됨

답변

4

System.Windows.Window 클래스에는 처리 할 수있는 가상 OnClosing(CancelEventArgs) 메서드와이 메서드를 재정의 할 수있는 Closing 이벤트가 있습니다.

나는 일반적으로 이러한 이벤트를 캡처하여 슬프게도 그러한 메서드 나 이벤트가없는 Page 클래스로 정보를 전달합니다.

각 창이 닫히면 이러한 메소드가 실행되므로 부모 윈도우와 하위 윈도우간에 메시지를 연결해야 할 필요가 없습니다. 그리고 저는 작업 관리자가 먼저 응용 프로그램의 정상 종료를 시도하여 대화 상자와 같은 다른 작업을 방해하지 않으면 닫기 이벤트를 발생시킵니다. 이 시도가 시도 된 후에 만 ​​비정상 종료가 응용 프로그램에 대해 수행되어야하는지 묻습니다. 분명히 Closing 이벤트를 우회합니다.

0

FormClosing 이벤트를 확인 했습니까?

0

아직 WPF에 대한 지식이 없지만 winforms에서 알 수 있습니다. Form 클래스의 Closing 클래스의 이벤트가 있습니다. '이 응용 프로그램이 종료되었습니다. 계속 진행 하시겠습니까?' '로 설정하고 플래그를 true로 설정하여 양식 닫기를 중단하고 ApplicationExit 이벤트가 Application 클래스에서 발생하면 응용 프로그램의 종료를 처리하려는 경우 해당 이벤트를 트랩 할 수 있습니다.

호프가 도움이 되었으면 안녕하세요, 탐.

관련 문제