Window.Show Método

Definição

Abre uma janela e volta sem esperar que a janela recém-aberta se feche.

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

Exceções

Show() é chamada numa janela que está a fechar (Closing) ou que foi fechada (Closed).

Exemplos

O exemplo seguinte demonstra como abrir uma janela sem modos.

// 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()

Observações

Quando a Window classe é instanciada, não é visível por defeito. Show mostra uma janela e regressa imediatamente, sem esperar que a janela se feche. Consequentemente, a janela aberta não impede os utilizadores de interagirem com outras janelas na aplicação. Este tipo de janela é chamado de janela sem modos . Exemplos comuns de janelas sem modos são janelas de propriedades, caixas de ferramentas e paletas. Para restringir um utilizador a interagir com uma janela específica, a janela deve ser aberta chamando ShowDialog.

Uma janela que é aberta ao chamar 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. Esta relação pode ser estabelecida usando o Owner imóvel e gerida através do imóvel OwnedWindows .

Chamar Show alcança o mesmo resultado final que definir Visibility a propriedade do Window objeto para Visible. No entanto, há uma diferença entre os dois do ponto de vista do tempo.

Chamar Show é uma operação síncrona que só retorna depois de o Loaded evento na janela filho ter sido elevado:

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.")

Definir Visibility, 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, quaisquer eventos de janela que registe antes de definir Visibility podem não ser ativados até que o método que definiste Visibility tenha concluído a execução.

Aplica-se a

Ver também