기본 콘텐츠로 건너뛰기

WPF Window Show / Close 후 새 Window Show 무시, 자동 종료 현상

 WPF 프로젝트 초기 개발시 Login 창 후 로직 처리 및 Main 창 호출이 되지 않고 종료 (exit code: 0) 되는 현상이 있습니다.

의도치 않은 기능인데, 아무래도 WPF 구조를 잘 모르는 상태에서 개발한 탓이겠지요.


개발 하고자 하는 흐름은 Application_Startup -> LoginWindow -> 비지니스 로직 -> MainWindow 인데, 비지니스 로직까지 돌고 바로 종료가 됩니다.


app.xaml

<Application x:Class="Test.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Test"
             Startup="Application_Startup">

보통 저런 형태로 사용하는데

WPF 는 기본적으로 창이 없을 경우 자동으로 종료되는 기능이 있습니다.


Application.ShutdownMode 속성 (System.Windows) | Microsoft Docs

Application 속성에 보면 ShutdownMode 가 있습니다.

<Application x:Class="Test.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Test"
             ShutdownMode="OnExplicitShutdown"
             Startup="Application_Startup">

위와 같이 ShutdownMode="OnExplicitShutdown" 속성을 넣으면 우리가 의도하는 LoginWindow -> 비지니스 로직 -> MainWindow 가 표시되도록 할 수 있습니다.


댓글

이 블로그의 인기 게시물

Synology DSM 6.1 마인크래프트 PE 서버 설치하기

아이들이 핸드폰으로 마인크래프트를 즐겨합니다. 아빠를 위해서 뭐를 지어주냐고 해서 흡연실을 만들어 달라고 했습니다. (담배 참은지 8개월째...ㅠㅠ) 핸드폰에 남겨져 있는게 아까워서 사설 서버를 들이고 싶었습니다. 개발용으로 PC 서버가 있긴한데 전기료 아까워서 매일 켤 수는 없고, 항상 켜져 있는 시놀로지 나스에서 구동하고자 하였고, 또 기억력이 좋지 않아 아래 삽질기를 남깁니다. 1. 서버 프로그램 선택    java 로 구동되는 nukkit ( https://nukkit.io ) 으로 선택했습니다.    패키지센터 (패키지 소스에 http://www.hildinger.us/sspks/ 추가해야 함) 에 있는 마인크래프트 서버를 설치하다가 java 8 설치 만으로 구동되는것을 보고 설치가 편할 것 이라 판단하였습니다. 처음에는 이 버전이 PE 도 되는건 줄 알고 엄청난 삽질을 했네요. 2. 설치    먼저 패키지센터를 통해 java 8 을 설치합니다.    해당 url 에서 서버 프로그램을 다운받아 디렉토리에 복사합니다.    디렉토리는 아무 계정의 홈디렉토리에 생성합니다.    admin 계정이나 root 계정 아무거나 상관 없습니다. 일반 계정도 상관없을 듯 합니다.    제 경우 admin 을 주로 사용하므로 putty 를 이용해서 admin 홈디렉토리에 mcpe 디렉토리를 생성하여 위 사이트에서 nukkit-1.0-SNAPSHOT.jar 를 받아 nukkit.jar 로 파일명을 변경하여 복사하였습니다. (이 단계까지는 File Station 으로도 가능합니다.)    구동되는지 테스트합니다.    putty 등을 사용하여 접속하고 위에 만든 디렉토리로 이동하여 명령어를 입력합니다.    java -jar nukkit.jar    처음 실행시 설치 언어를 물어보는데 하고 싶은 언어를 입력합니다. kor 또는 eng    그러면 여러 파일들이 해당 폴더에 생기면서 서버가 구동됩니다. java 8 만 설치돼

단독형 키오스크 [1차 완료]

  포스 개발 일을 하고 있습니다. 기존 포스 솔루션에 별도 UI 를 추가하여 (C# Winform) 포스 프로그램 위에서 구동되는 버전이 있습니다만, 좀 더 타겟팅을 하여 포스를 사용하지 않는 매장을 타겟으로 단독으로 구동되는 키오스크를 개발 중에 있습니다. 키오스크의 특성상 다양한 해상도를 지원해야 하고 해서 이번 기회에 WPF 를 이용하여 개발할 계획을 세우고, 12월 말 부터 WPF 기술 습득하고, 본격적으로 2월 정도 부터 프로젝트를 진행하였습니다. 아직 포장 중이긴 합니다만 WPF 로 작성한 첫 프로그램인 만큼 저의 개발 블로그에 올려봅니다.

ORACLE Instant Client 설치

2006/09/15 14:22 에 작성한 내용 이전 등록 적용방법 (VB6 테스트 기준) 오라클사이트에서 다음 같은 화일을 다운로드 한다. instantclient-basic-win32-10.2.0.2-20060508.zip instantclient-odbc-win32-10.2.0.2-20060508.zip C:\InstantClient 로 압축해제 후 복사한다. 시스템변수 PATH 에 C:\InstantClient 를 추가한다. 시스템변수 TNS_ADMIN 를 추가하고 C:\InstantClient 를 설정한다. 리부팅... (또는 그냥 CMD 로 추가... 전자 추천) C:\InstantClient 폴더에서 odbc_install.exe 를 실행한다. 기존 오라클클라이언트에서 사용하던 tnsnames.ora 를 가져다 InstantClient 폴더에 넣는다. C:\Oracle\Ora81\NETWORK\ADMIN 에 있다. (없으면 비슷하게 생긴거 구글에서 찾아보자) 이게 있어야 DSN 설정이 가능한 듯 제어판->관리도구->ODBC 에서 사용자DSN 에 추가한다. 드라이버 : Oracle in instantclient10_2 선택 그리고 화면 나오는데로 입력 Test Connection 한번 눌러서 연결되는지 확인 하고 마지막으로 한글을 사용하려면 하단탭의 Workarounds 에서 Force SQL_WCHAR Suppot 를 선택 (이걸 모르고 해보다 한글이 ?? 게 나오는거 보고 시껍함) 프로그램 루틴 Connection String 을 변경한다. DATA SOURCE=dsn_name;User ID=user;Password=password 만 등록했음