답변:
새 WPF 응용 프로그램을 만들면 .xaml 파일과 .cs 파일이 있어야합니다. 이들은 기본 창을 나타냅니다. 추가 .xaml 파일과 .cs 파일을 만들어 하위 창을 나타냅니다.
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Open Window" Click="ButtonClicked" Height="25" HorizontalAlignment="Left" Margin="379,264,0,0" Name="button1" VerticalAlignment="Top" Width="100" />
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonClicked(object sender, RoutedEventArgs e)
{
SubWindow subWindow = new SubWindow();
subWindow.Show();
}
}
그런 다음 이러한 클래스에 필요한 추가 코드를 추가합니다.
SubWindow.xaml
SubWindow.xaml.cs
두 번째 창이로 정의되어 있다고 가정하면 다음과 같이 public partial class Window2 : Window
할 수 있습니다.
Window2 win2 = new Window2();
win2.Show();
이것은 나를 도왔습니다. 소유자 방법은 기본적으로 동일한 창을 가진 추가 창을 원하는 경우 창을 다른 창에 연결합니다.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
이것도 고려하십시오.
this.WindowState = WindowState.Normal;
this.Activate();
WPF에는 Show () 및 ShowDialog () 메서드를 사용하는 몇 가지 옵션이 있습니다.
새 창이 열릴 때 열린 창을 닫으려면 Show () 메서드를 사용할 수 있습니다.
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog ()도 창을 열지 만이 경우 이전에 열린 창을 닫을 수 없습니다.
이와 같이 새 창의 인스턴스를 만들어야합니다.
var window2 = new Window2();
인스턴스가 있으면 수행하려는 작업에 따라 Show () 또는 ShowDialog () 메서드를 사용할 수 있습니다.
window2.Show();
또는
var result = window2.ShowDialog();
ShowDialog ()는 Nullable<bool>
필요한 경우를 반환 합니다.