Window.Show Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Abre uma janela e retorna sem aguardar a janela recém-aberta fechar.
public:
void Show();
public void Show ();
member this.Show : unit -> unit
Public Sub Show ()
Exceções
Exemplos
O exemplo a seguir demonstra como abrir uma janela sem formação.
// 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()
Comentários
Quando a Window classe é instanciada, ela não fica visível por padrão. Show mostra uma janela e retorna imediatamente, sem esperar que a janela seja fechada. Consequentemente, a janela aberta não impede que os usuários interajam com outras janelas no aplicativo. Esse tipo de janela é chamado de janela sem formação . Exemplos comuns de janelas sem janelas são janelas de propriedades, caixas de ferramentas e paletas. Para restringir um usuário a interagir com uma janela específica, a janela deve ser aberta chamando ShowDialog.
Uma janela aberta chamando Show não tem automaticamente uma relação com a janela que a abriu; especificamente, a janela aberta não sabe qual janela a abriu. Essa relação pode ser estabelecida usando a Owner propriedade e gerenciada usando a OwnedWindows propriedade .
Chamar Show obtém o mesmo resultado final que definir Visibility a propriedade do Window objeto como Visible. No entanto, há uma diferença entre os dois de uma perspectiva de tempo.
Chamar Show é uma operação síncrona que retorna somente após o Loaded evento na janela filho ter sido gerado:
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.")
A configuração Visibilityde , no entanto, é uma operação assíncrona que retorna imediatamente:
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.")
Ao definir Visibility, todos os eventos de janela que você registrar antes de definir Visibility não poderão ser gerados até que o método em que você definiu Visibility tenha concluído a execução.