2011-04-18 6 views
23

어리석은 간단한 질문 나는 알아낼 수 없다.WPF 창을 전환하는 방법은 무엇입니까?

WPF 응용 프로그램이 있는데, 먼저 주 창이 나타나기 전에 로그온 대화 상자를 표시하려고합니다.

사용자가 성공적으로 로그온하면 기본 창을 표시하고 그렇지 않으면 응용 프로그램을 종료하고 싶습니다.

어떻게하면 제대로 할 수 있습니까?

답변

41

나는 무엇을 하려는지 알았습니다.

1) App.xaml의 "StartupUri"를 "Logon.xaml"으로 설정해야합니다. 여기서 Logon.xaml은 내 로그온 창입니다. LogonButton_Click 이벤트 처리기에서

2), 나는이

if (blnAuthenticateSuccessful) { 
    MainWindow main = new MainWindow(); 
    App.Current.MainWindow = main; 
    this.Close(); 
    main.Show(); 
} 

다음이 내가 원하는 것을 달성 할 것으로 보인다 덧붙였다.

3

사용자가 로그인 정보를 입력 할 수 있도록 새 창이 나타나도록하려면 아래에 몇 가지 코드를 추가해야합니다. 그러나 실제 모달 대화 상자를 만드는 것은 WPF에서 좀 더 복잡하므로 여기서 설명하지 않았습니다.

// Code for MainWindow 

// Create a new instance of the login window and then show it 
LoginWindow loginWindow = new LoginWindow(); 
loginWindow.Show(); 

// Hide the MainWindow until later 
this.Hide(); 

이 그 다음을 보여 로그인 페이지에서이를 사용하면 로그인 창을 열고이와 메인 창을 숨길 수 MainWindow를에서 http://msdn.microsoft.com/en-us/library/aa969773.aspx

: 여기 WPF에서 모달 대화 상자에 대한 정보가있다 사용자가 로그인하면 메인 윈도우가 다시 표시됩니다.

// Code for Login window 

// This code finds the main window again and shows it 
Application.Current.MainWindow.Show(); 
+0

사용자가 주 창을 처음 보지 못하도록 어떤 이벤트를 넣으시겠습니까? – Sako73

+0

@ Sako73 코드의 첫 번째 비트를 가져다 주면 멋지게 작동하는 MainWindow 생성자에 넣습니다. 그런 다음 MainWindow가로드되면 즉시 로그인 창이 열리고 MainWindow가 숨겨집니다. –

관련 문제