Compartir a través de


Cómo: Obtener y establecer la ventana principal de una aplicación

En este ejemplo se muestra cómo obtener y establecer la ventana principal de la aplicación.

Ejemplo

Application establece automáticamente el primer objeto Window del que se crea una instancia en una aplicación Windows Presentation Foundation (WPF) como la ventana principal de la aplicación. El primer objeto Window del que se crea una instancia será, probablemente, la ventana que se especifica como uniform resource identifier (URI) de inicio (consulte StartupUri).

También se puede crear una instancia del primer objeto Window mediante código. Un ejemplo de ello es la apertura de una ventana al iniciar una aplicación, como se muestra a continuación:

    Partial Public Class App
        Inherits Application
        Private Sub App_Startup(ByVal sender As Object, ByVal e As StartupEventArgs)
            Dim window As New MainWindow()
            window.Show()
        End Sub
    End Class
public partial class App : Application
{
    void App_Startup(object sender, StartupEventArgs e)
    {
        MainWindow window = new MainWindow();
        window.Show();
    }
}

A veces, el primer objeto Window del que se crea una instancia no es realmente la ventana principal de la aplicación; por ejemplo, una pantalla de presentación. En este caso, puede especificar la ventana principal de la aplicación mediante marcado, como se muestra a continuación:

<Application 
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="StartupWindow.xaml"
    >
  <Application.MainWindow>
    <NavigationWindow Source="MainPage.xaml" Visibility="Visible"></NavigationWindow>
  </Application.MainWindow>
</Application>

Independientemente de si se especifica la ventana principal automática o manualmente, puede obtenerla de MainWindow utilizando el código siguiente, como se muestra a continuación:

' Get the main window
Dim mainWindow As Window = Me.MainWindow
// Get the main window
Window mainWindow = this.MainWindow;