위 프로그램에서 첫 번째 중요한 사실은 OnStartup() 이벤트에서 생성된 3개의 창은 이 응용프로그램에서 모두 동등하다는 것입니다. 그 어떤 윈도우라도 클릭하게 되면 선택된 윈도우는 가장 앞에 자리하게 됩니다. 어떤 순서로도 닫을 수 있으며 가장 마지막에 윈도우가 닫히면 프로그램은 종료됩니다.

for 루프 안에 다음 구문을 삽입하면 "Main Window" 란 제목을 가진 윈도우만 남게 됩니다.
그러나 이 같은 경우 "Main Window" 윈도우를 닫을 경우 윈도우 작업표시줄에 있던 항목은 사라지지만 여전히 응용 프로그램은 계속 실행중 입니다. 물론 2개의 다른 창도 그대로 프로세스에 남아있겠지요 ~~~
ShutdownMode 프로퍼티
|
OnLastWindowClose |
마지막 윈도우가 닫힐 경우 |
OnMainWindowClose |
메인 윈도우를 닫을 경우 | |
OnExplicitShutdown |
Shutdown 메소드를 명시적으로 호출할 경우 |
반면 재정의(override) 된 OnStartup 이벤트 안에서는 this 키워드만 붙이면 이벤트 안의 어느곳이든 ShutdownMode 프로퍼티 설정이 가능합니다. (this 키워드는 생략할 수 있으므로 그냥 프로퍼티 이름만 적어도 됩니다.)
이제 메인 윈도우가 닫힐 때만 Run 메소드가 반환되고 프로그램이 종료됩니다. 마지막으로 메인윈도우를 지정하는 구분을 알아보면 다음과 같습니다. 다음 구문을 OnStartup 이벤트의for 루프 안에 추가합니다.
마지막으로 지금까지 추가된 모든 구문을 제거하고 여러 윈도우들에 대한 계층 구조를 만드는 또 다른 방법을 알아보겠습니다. For 루프 안에 다음 구문을 추가합니다. Window 클래스에 정의된 Owner 프로퍼티를 이용하여 메인으로 지정할 윈도우를 지정하는 합니다. Owner은 소유자라는 뜻으로 기본값은 null 이며 나머지 윈도우를 소유하고 제어할 수 있습니다. 소유자 윈도우를 최소화하면 모든 윈도우가 화면에서 사라지고 소유자 윈도우를 닫으면 나머지 모든 윈도우도 자동으로 닫히게 됩니다.
참고서적 : 찰스 페졸트의 WPF
'닷넷 프로그래밍(~2012)' 카테고리의 다른 글
클래스를 상속받아 윈도우 응용 프로그램 구현하기 (0) | 2008.01.08 |
---|---|
막장 테스트 1탄 - ASP.NET MasterPage에 Plug-in 형태 적용 (0) | 2008.01.06 |
화면에서 윈도우 크기와 위치 지정 (0) | 2008.01.05 |
Application의 window 제어하기 (0) | 2007.12.21 |
이벤트 안에서 현재의 윈도우 객체 구하기 (0) | 2007.12.14 |
응용프로그램 Application 클래스 이벤트 처리 (0) | 2007.12.13 |
클래스 계층 구조 (0) | 2007.12.12 |
웹 개발자라면 꼭 설치해야 하는 필수 유틸리티 (0) | 2007.12.12 |