Ana uygulama penceresini (WPF .NET) nasıl alıtır veya ayarlama

Bu makalede, Windows Presentation Foundation (WPF) için ana uygulama penceresinin nasıl Windows Presentation Foundation öğretmektedir. WPF uygulamasında örneği yapılan ilk örnek, tarafından Window ana uygulama penceresi olarak otomatik olarak Application ayarlanır. Ana pencereye özelliğiyle Application.MainWindow başvurulmaktadır.

Bir proje şablonunun, uygulamanız içinde bir XAML dosyası olarak ayarlaması için büyük bir Application.StartupUri süre vardır, _Window1.xaml_ örneğin: . Bu, uygulamanız tarafından örneklenmiş ve gösterilen ilk penceredir ve ana pencere olur.

İpucu

Bir uygulamanın varsayılan davranışı, son pencere kapatılana kadar kapatılmasıdır. Bu davranış özelliği tarafından Application.ShutdownMode denetlenmektedir. Bunun yerine, kapatılırsa uygulamayı kapatılacak şekilde MainWindow yapılandırabilirsiniz. Bu Application.ShutdownMode davranışı etkinleştirmek için olarak OnMainWindowClose ayarlayın.

XAML'de ana pencereyi ayarlama

WPF uygulamanızı oluşturan şablonlar genellikle özelliğini bir Application.StartupUri XAML dosyası olarak ayarlayın. Bu özellik şu nedenle yararlıdır:

  1. Projenizin farklı bir XAML dosyasına kolayca değiştirilebilir.
  2. Otomatik olarak örneği oluşturulur ve belirtilen pencere görüntülenir.
  3. Belirtilen pencere Application.MainWindow olur.
<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 yerine Application.StartupUri , Application.MainWindow XAML tarafından bildirilen bir pencere olarak ayarlanır. Ancak burada belirtilen pencere görüntülenmez ve görünürlüğünü sizin ayarlamalısınız.

<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 de özelliklerini Application.StartupUriApplication.MainWindow ayarsanız, uygulama başlatıldığında her iki pencereyi de görüntülersiniz.

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

Kodda ana pencereyi ayarlama

Uygulamanız tarafından örneği yapı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 ayarlayın:

Application.Current.MainWindow = new Window2();

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

Application.Current.MainWindow.Show()

Uygulamanız hiç pencere örneği oluşturmamışsa, aşağıdaki kod işlevsel olarak önceki koda eşdeğerdir:

var appWindow = new Window2();

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

appWindow.Show()

Pencere nesnesi örneği oluşturulduktan hemen sonra nesnesine Application.MainWindow atanır.

Ana pencereyi al

Özelliğini inceerek ana pencere olarak seçilen pencereye Application.MainWindow erişebilirsiniz. Aşağıdaki kod, bir düğmeye tıkıldığında ana pencerenin başlığına sahip 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.