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 un valor sin esperar a que se cierre la ventana que acaba de abrirse.
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 . Los ejemplos comunes de ventanas modeless 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 mediante una llamada a ShowDialog.
Una ventana que se abre mediante una llamada 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 administrarla mediante la OwnedWindows propiedad .
La llamada a Show logra el mismo resultado final que establecer Visibility la propiedad del Window objeto Visibleen . Sin embargo, hay una diferencia entre los dos desde una perspectiva de tiempo.
Llamar 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 haya Visibility completado la ejecución.