Sdílet prostřednictvím


Jak získat nebo nastavit hlavní okno aplikace (WPF .NET)

Tento článek vás naučí, jak získat nebo nastavit hlavní okno aplikace pro Windows Presentation Foundation (WPF). Window První, která se vytvoří instance v rámci aplikace WPF, se automaticky nastaví Application jako hlavní okno aplikace. Na hlavní okno se odkazuje na Application.MainWindow vlastnost.

Šablona projektu bude v rámci vaší aplikace nastavena Application.StartupUri na soubor XAML, například _Window1.xaml_. Toto je první instance okna, která se zobrazí vaší aplikací, a stane se hlavním oknem.

Tip

Výchozím chováním aplikace je vypnutí při zavření posledního okna. Toto chování je řízeno Application.ShutdownMode vlastností. Místo toho můžete aplikaci nakonfigurovat tak, aby se v případě zavření ukončila MainWindow . Nastavte Application.ShutdownMode na povolení OnMainWindowClose tohoto chování.

Nastavení hlavního okna v XAML

Šablony, které generují aplikaci WPF, obvykle nastaví Application.StartupUri vlastnost na soubor XAML. Tato vlastnost je užitečná, protože:

  1. V projektu se dá snadno změnit na jiný soubor XAML.
  2. Automaticky vytvoří instanci a zobrazí zadané okno.
  3. Zadané okno se stane 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>

Místo použití Application.StartupUrimůžete nastavit Application.MainWindow okno deklarované XAML. Zadané okno se ale nezobrazí a musíte nastavit jeho viditelnost.

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

Upozornění

Pokud nastavíte obě Application.StartupUri i Application.MainWindow vlastnosti, zobrazí se při spuštění aplikace obě okna.

Událost můžete také použít Application.Startup k otevření okna. Další informace naleznete v tématu Použití spouštěcí události k otevření okna.

Nastavení hlavního okna v kódu

První okno vytvořený vaší aplikací se automaticky stane hlavním oknem a nastaví se na Application.MainWindow vlastnost. Pokud chcete nastavit jiné hlavní okno, změňte tuto vlastnost na okno:

Application.Current.MainWindow = new Window2();

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

Application.Current.MainWindow.Show()

Pokud vaše aplikace nikdy nevytvořila instanci okna, je následující kód funkčně ekvivalentní předchozímu kódu:

var appWindow = new Window2();

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

appWindow.Show()

Jakmile se vytvoří instance objektu okna, je přiřazena .Application.MainWindow

Získání hlavního okna

K okně vybranému jako hlavní okno se dostanete kontrolou Application.MainWindow vlastnosti. Následující kód při kliknutí na tlačítko zobrazí okno se zprávou s názvem hlavního okna:

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

Viz také