Window.Show Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.