기본 애플리케이션 창을 가져오거나 설정하는 방법(WPF .NET)
이 문서에서는 WPF(Windows Presentation Foundation)의 기본 애플리케이션 창을 가져오거나 설정하는 방법을 설명합니다. WPF 애플리케이션 내에서 인스턴스화된 첫 번째 Window는 Application에 의해 자동으로 기본 애플리케이션 창으로 설정됩니다. 기본 창은 Application.MainWindow 속성으로 참조됩니다.
대부분의 경우 프로젝트 템플릿은 Application.StartupUri를 _Window1.xaml_과 같은 애플리케이션 내의 XAML 파일로 설정합니다. 이는 애플리케이션에 의해 인스턴스화되고 표시되는 첫 번째 창이며 기본 창이 됩니다.
팁
애플리케이션의 기본 동작은 마지막 창이 닫힐 때 종료하는 것입니다. 이 동작은 Application.ShutdownMode 속성에 의해 제어됩니다. 대신 MainWindow가 닫혀 있는 경우 애플리케이션이 종료되도록 구성할 수 있습니다. 이 동작을 사용하도록 설정하려면 Application.ShutdownMode를 OnMainWindowClose로 설정합니다.
XAML에서 기본 창 설정
WPF 애플리케이션을 생성하는 템플릿은 일반적으로 Application.StartupUri 속성을 XAML 파일로 설정합니다. 이 속성은 다음과 같은 이유로 유용합니다.
- 프로젝트의 다른 XAML 파일로 쉽게 변경할 수 있습니다.
- 지정된 창을 자동으로 인스턴스화하고 표시합니다.
- 지정된 창이 Application.MainWindow가 됩니다.
<Application x:Class="MainApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MainApp"
StartupUri="Window1.xaml">
</Application>
Application.StartupUri를 사용하는 대신 Application.MainWindow를 XAML로 선언된 창으로 설정할 수 있습니다. 그러나 여기서 지정된 창은 표시되지 않으며 표시 여부를 설정해야 합니다.
<Application x:Class="MainApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MainApp">
<Application.MainWindow>
<local:Window2 Visibility="Visible" />
</Application.MainWindow>
</Application>
주의
Application.StartupUri 및 Application.MainWindow 속성을 모두 설정하면 애플리케이션이 시작될 때 두 창이 모두 표시됩니다.
또한 Application.Startup 이벤트를 사용하여 창을 열 수 있습니다. 자세한 내용은 시작 이벤트를 사용하여 창 열기를 참조하세요.
코드에서 기본 창 설정
애플리케이션에서 인스턴스화된 첫 번째 창은 자동으로 기본 창이 되며 Application.MainWindow 속성으로 설정됩니다. 다른 기본 창을 설정하려면 이 속성을 창으로 변경합니다.
Application.Current.MainWindow = new Window2();
Application.Current.MainWindow.Show();
Application.Current.MainWindow = New Window2()
Application.Current.MainWindow.Show()
애플리케이션에서 창의 인스턴스를 만든 적이 없는 경우 다음 코드는 이전 코드와 기능적으로 동일합니다.
var appWindow = new Window2();
appWindow.Show();
Dim appWindow As New Window2()
appWindow.Show()
창 개체 인스턴스가 생성되자마자 Application.MainWindow에 할당됩니다.
기본 창 가져오기
Application.MainWindow 속성을 검사하여 기본 창으로 선택한 창에 액세스할 수 있습니다. 다음 코드는 단추를 클릭할 때 기본 창의 제목이 있는 메시지 상자를 표시합니다.
private void Button_Click(object sender, RoutedEventArgs e) =>
MessageBox.Show($"The main window's title is: {Application.Current.MainWindow.Title}");
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
MessageBox.Show($"The main window's title is: {Application.Current.MainWindow.Title}")
End Sub
참고 항목
.NET Desktop feedback