wpf

Doosan published on
1 min, 105 words

Categories: post

Visual studio에서 wpf 프로그램을 실행할때 window가 두개 뜰때가 있다.
App.xaml

<Application x:Class="Trading.WPFClient.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Trading.WPFClient"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
         
    </Application.Resources>
</Application>

App.xaml.cs

 public partial class App : Application
 {
     protected override void OnStartup(StartupEventArgs e)
     {
         MainWindow = new MainWindow()
         {
             DataContext = new MainViewModel()
         };
         MainWindow.Show();
         base.OnStartup(e);
     }
 }

StartupUri="MainWindow.xaml"은 application 시작 시 해당 UI를 자동으로 보여준다. 그런데 OnStartup에서도 new MainWindow()를 만들고 Show()를 호출하고 있으니 window가 두 개 생긴다.
둘 중 하나를 없애주면 된다. 보통은 StartupUri를 쓰거나, StartupUri를 지우고 OnStartup에서 직접 window를 만들거나 둘 중 하나만 선택한다.

Problem With WPF C# App Spawning Two Main Windows

Ref