Share via


Ana uygulama penceresini alma veya ayarlama (WPF .NET)

Bu makalede, Windows Presentation Foundation (WPF) için ana uygulama penceresini nasıl alabileceğiniz veya ayarlayacağınız öğretilmektedir. Bir WPF uygulaması içinde örneği açılan ilk Window uygulama, tarafından otomatik olarak ana uygulama penceresi olarak ayarlanır Application . Ana pencereye özelliğiyle başvurulur Application.MainWindow .

Çoğu zaman bir proje şablonu uygulamasının içinde gibi bir XAML dosyası olarak _Window1.xaml_ayarlarApplication.StartupUri. Bu, uygulamanız tarafından örneklenip gösterilen ilk penceredir ve ana pencere olur.

Bahşiş

Bir uygulama için varsayılan davranış, son pencere kapatıldığında kapatmaktır. Bu davranış özelliği tarafından denetlenmektedir Application.ShutdownMode . Bunun yerine, kapatılırsa MainWindow uygulamayı kapatacak şekilde yapılandırabilirsiniz. OnMainWindowClose Bu davranışı etkinleştirmek için olarak ayarlayınApplication.ShutdownMode.

XAML'de ana pencereyi ayarlama

WPF uygulamanızı oluşturan şablonlar genellikle özelliğini bir XAML dosyasına ayarlar Application.StartupUri . Bu özellik yararlıdır çünkü:

  1. Projenizdeki farklı bir XAML dosyasıyla kolayca değiştirilebilir.
  2. Otomatik olarak örneği oluşturur ve belirtilen pencereyi görüntüler.
  3. Belirtilen pencere olur 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>

kullanmak Application.StartupUriyerine XAML tarafından bildirilen bir pencereye ayarlayabilirsiniz Application.MainWindow . Ancak, burada belirtilen pencere görüntülenmez ve görünürlüğünü ayarlamanız gerekir.

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

Dikkat

Hem hem Application.MainWindow de Application.StartupUri özelliklerini ayarlarsanız, uygulamanız başlatıldığında her iki pencereyi de görüntülersiniz.

Ayrıca, bir pencere açmak için olayı kullanabilirsiniz Application.Startup . Daha fazla bilgi için bkz . Başlangıç olayını kullanarak bir pencere açma.

Kodda ana pencereyi ayarlama

Uygulamanız tarafından örneği açılan ilk pencere otomatik olarak ana pencere olur ve özelliğine Application.MainWindow ayarlanır. Farklı bir ana pencere ayarlamak için bu özelliği bir pencere olarak değiştirin:

Application.Current.MainWindow = new Window2();

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

Application.Current.MainWindow.Show()

Uygulamanız hiç bir pencere örneği oluşturmadıysa, aşağıdaki kod işlevsel olarak önceki kodla eşdeğerdir:

var appWindow = new Window2();

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

appWindow.Show()

Pencere nesnesi örneği oluşturulur oluşturulmaz, öğesine Application.MainWindowatanır.

Ana pencereyi alma

Özelliği inceleyerek ana pencere olarak seçilen pencereye Application.MainWindow erişebilirsiniz. Aşağıdaki kod, bir düğmeye tıklandığında ana pencerenin başlığını içeren bir ileti kutusu görüntüler:

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

Ayrıca bkz.