Compartir vía


Window.Show Método

Definición

Abre una ventana y devuelve sin esperar a que se cierre la ventana recién abierta.

public:
 void Show();
public void Show();
member this.Show : unit -> unit
Public Sub Show ()

Excepciones

Show() se llama a en una ventana que está cerrando (Closing) o que se ha cerrado (Closed).

Ejemplos

En el ejemplo siguiente se muestra cómo abrir una ventana modeless.

// Initialize window
Window window = new Window();

// Show window modelessly
// NOTE: Returns without waiting for window to close
window.Show();
' Initialize window
Dim window As New Window()

' Show window modelessly
' NOTE: Returns without waiting for window to close
window.Show()

Comentarios

Cuando se crea una instancia de la Window clase, no es visible de forma predeterminada. Show muestra una ventana y devuelve inmediatamente, sin esperar a que se cierre la ventana. Por lo tanto, la ventana abierta no impide que los usuarios interactúen con otras ventanas de la aplicación. Este tipo de ventana se denomina ventana modeless . Algunos ejemplos comunes de ventanas de modelos son ventanas de propiedades, cuadros de herramientas y paletas. Para restringir que un usuario interactúe con una ventana específica, la ventana debe abrirse llamando a ShowDialog.

Una ventana que se abre llamando Show a no tiene automáticamente una relación con la ventana que la abrió; en concreto, la ventana abierta no sabe qué ventana la abrió. Esta relación se puede establecer mediante la Owner propiedad y administrarse mediante la OwnedWindows propiedad .

La llamada a Show logra el mismo resultado final que establecer Visibility la propiedad del Window objeto en Visible. Sin embargo, hay una diferencia entre los dos desde una perspectiva de tiempo.

La llamada a Show es una operación sincrónica que solo devuelve después de que se haya generado el Loaded evento en la ventana secundaria:

Window w = new Window();
w.Loaded += delegate { System.Console.WriteLine("This is written first."); };
w.Show();
System.Console.WriteLine("This is written last.");
Dim w As New Window()
AddHandler w.Loaded, Sub() System.Console.WriteLine("This is written first.")
w.Show()
System.Console.WriteLine("This is written last.")

Sin embargo, establecer Visibilityes una operación asincrónica que devuelve inmediatamente:

Window w2 = new Window();
w2.Loaded += delegate { System.Console.WriteLine("This is written last."); };
w2.Visibility = Visibility.Visible;
System.Console.WriteLine("This is written first.");
Dim w2 As New Window()
AddHandler w2.Loaded, Sub() System.Console.WriteLine("This is written last.")
w2.Visibility = Visibility.Visible
System.Console.WriteLine("This is written first.")

Al establecer Visibility, es posible que los eventos de ventana que registre antes de establecer Visibility no se generen hasta después del método en el que se Visibility ha completado la ejecución.

Se aplica a

Consulte también