Jawaban:
Ketika Anda telah membuat aplikasi WPF baru, Anda harus memiliki file .xaml dan file .cs. Ini mewakili jendela utama Anda. Buat file .xaml tambahan dan file .cs untuk mewakili sub jendela Anda.
<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();
}
}
Kemudian tambahkan kode tambahan apa pun yang Anda butuhkan ke kelas-kelas ini:
SubWindow.xaml
SubWindow.xaml.cs
Dengan asumsi jendela kedua didefinisikan sebagai public partial class Window2 : Window
, Anda dapat melakukannya dengan:
Window2 win2 = new Window2();
win2.Show();
Ini membantu saya: Metode Pemilik pada dasarnya mengikat jendela ke jendela lain jika Anda menginginkan jendela tambahan dengan jendela yang sama.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Pertimbangkan ini juga.
this.WindowState = WindowState.Normal;
this.Activate();
Di WPF kami memiliki beberapa opsi dengan menggunakan metode Show () dan ShowDialog ().
Nah, jika Anda ingin menutup jendela yang terbuka ketika jendela baru terbuka maka Anda dapat menggunakan metode Show ():
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog () juga membuka jendela, tetapi dalam hal ini Anda tidak dapat menutup jendela yang sebelumnya dibuka.
Anda perlu membuat instance dari jendela baru seperti itu.
var window2 = new Window2();
Setelah Anda memiliki instance, Anda dapat menggunakan metode Show () atau ShowDialog () tergantung pada apa yang ingin Anda lakukan.
window2.Show();
atau
var result = window2.ShowDialog();
ShowDialog () akan mengembalikan Nullable<bool>
jika Anda membutuhkannya.