Bagikan melalui


Cara mendapatkan atau mengatur jendela aplikasi utama (WPF .NET)

Artikel ini mengajarkan Anda cara mendapatkan atau mengatur jendela aplikasi utama untuk Windows Presentation Foundation (WPF). Yang pertama Window yang dibuat dalam aplikasi WPF secara otomatis diatur oleh Application sebagai jendela aplikasi utama. Jendela utama dirujuk dengan Application.MainWindow properti .

Sebagian besar waktu templat proyek akan mengatur Application.StartupUri ke file XAML dalam aplikasi Anda, seperti _Window1.xaml_. Ini adalah jendela pertama yang dibuat dan ditunjukkan oleh aplikasi Anda, dan menjadi jendela utama.

Tip

Perilaku default untuk aplikasi adalah mematikan saat jendela terakhir ditutup. Perilaku ini dikendalikan oleh Application.ShutdownMode properti . Sebagai gantinya, Anda dapat mengonfigurasi aplikasi untuk dimatikan jika MainWindow ditutup. Atur Application.ShutdownMode ke OnMainWindowClose untuk mengaktifkan perilaku ini.

Mengatur jendela utama di XAML

Templat yang menghasilkan aplikasi WPF Anda biasanya mengatur Application.StartupUri properti ke file XAML. Properti ini berguna karena:

  1. Ini mudah diubah ke file XAML yang berbeda dalam proyek Anda.
  2. Secara otomatis membuat instans dan menampilkan jendela yang ditentukan.
  3. Jendela yang ditentukan menjadi 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>

Alih-alih menggunakan Application.StartupUri, Anda dapat mengatur ke Application.MainWindow jendela yang dideklarasikan XAML. Namun, jendela yang ditentukan di sini tidak akan ditampilkan dan Anda harus mengatur visibilitasnya.

<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>

Perhatian

Jika Anda mengatur Application.StartupUri properti dan Application.MainWindow , Anda akan menampilkan kedua jendela saat aplikasi dimulai.

Selain itu Application.Startup , Anda dapat menggunakan peristiwa untuk membuka jendela. Untuk informasi selengkapnya, lihat Menggunakan peristiwa Startup untuk membuka jendela.

Mengatur jendela utama dalam kode

Jendela pertama yang dibuat oleh aplikasi Anda secara otomatis menjadi jendela utama dan diatur ke Application.MainWindow properti . Untuk mengatur jendela utama yang berbeda, ubah properti ini ke jendela:

Application.Current.MainWindow = new Window2();

Application.Current.MainWindow.Show();
Application.Current.MainWindow = New Window2()

Application.Current.MainWindow.Show()

Jika aplikasi Anda belum pernah membuat instans jendela, kode berikut secara fungsional setara dengan kode sebelumnya:

var appWindow = new Window2();

appWindow.Show();
Dim appWindow As New Window2()

appWindow.Show()

Segera setelah instans objek jendela dibuat, instans tersebut ditetapkan ke Application.MainWindow.

Dapatkan jendela utama

Anda dapat mengakses jendela yang dipilih sebagai jendela utama dengan memeriksa Application.MainWindow properti . Kode berikut menampilkan kotak pesan dengan judul jendela utama saat tombol diklik:

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

Lihat juga