Jak pobrać lub ustawić główne okno aplikacji (WPF .NET)

W tym artykule przedstawiono sposób pobierania lub ustawiania głównego okna aplikacji dla programu Windows Presentation Foundation (WPF). Pierwszy Window wystąpienie w aplikacji WPF jest automatycznie ustawiane Application jako główne okno aplikacji. Do okna głównego odwołuje się Application.MainWindow właściwość .

W dużej mierze szablon projektu ustawi Application.StartupUri plik XAML w aplikacji, taki jak _Window1.xaml_. Jest to pierwsze okno utworzone i wyświetlane przez aplikację, które staje się głównym oknem.

Napiwek

Domyślne zachowanie aplikacji polega na zamknięciu ostatniego okna. To zachowanie jest kontrolowane przez Application.ShutdownMode właściwość . Zamiast tego można skonfigurować aplikację tak, aby została zamknięta MainWindow . Ustaw Application.ShutdownMode wartość na , aby OnMainWindowClose włączyć to zachowanie.

Ustawianie okna głównego w języku XAML

Szablony, które generują aplikację WPF, zazwyczaj ustawiają Application.StartupUri właściwość na plik XAML. Ta właściwość jest przydatna, ponieważ:

  1. Można go łatwo zmienić na inny plik XAML w projekcie.
  2. Automatycznie tworzy wystąpienie i wyświetla określone okno.
  3. Określone okno staje się elementem 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>

Zamiast używać Application.StartupUripolecenia , można ustawić Application.MainWindow wartość na okno zadeklarowane przez język XAML. Jednak okno określone w tym miejscu nie będzie wyświetlane i musisz ustawić jego widoczność.

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

Uwaga

Jeśli ustawisz zarówno właściwości, jak Application.StartupUri i, po uruchomieniu Application.MainWindow aplikacji zostaną wyświetlone oba okna.

Ponadto możesz użyć Application.Startup zdarzenia, aby otworzyć okno. Aby uzyskać więcej informacji, zobacz Otwieranie okna przy użyciu zdarzenia uruchamiania.

Ustawianie głównego okna w kodzie

Pierwsze okno utworzone przez aplikację automatycznie staje się głównym oknem i jest ustawione na Application.MainWindow właściwość . Aby ustawić inne okno główne, zmień tę właściwość na okno:

Application.Current.MainWindow = new Window2();

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

Application.Current.MainWindow.Show()

Jeśli aplikacja nigdy nie utworzyła wystąpienia okna, następujący kod jest funkcjonalnie równoważny poprzedniemu kodowi:

var appWindow = new Window2();

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

appWindow.Show()

Po utworzeniu wystąpienia obiektu okna jest ono przypisane do Application.MainWindowelementu .

Pobieranie okna głównego

Możesz uzyskać dostęp do okna wybranego jako okno główne, sprawdzając Application.MainWindow właściwość . Poniższy kod wyświetla pole komunikatu z tytułem okna głównego po kliknięciu przycisku:

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

Zobacz też