Como abrir uma janela ou caixa de diálogo (WPF .NET)

Você pode criar suas próprias janelas e exibi-las no Windows Presentation Foundation (WPF). Neste artigo, você aprenderá a exibir janelas e caixas de diálogo modais e sem modo.

Conceitualmente, uma janela e uma caixa de diálogo são a mesma coisa: elas são exibidas a um usuário para fornecer informações ou interação. Ambos são objetos de "janela". O design da janela e a maneira como ela é usada, é o que faz uma caixa de diálogo. Uma caixa de diálogo é geralmente pequena em tamanho e requer que o usuário responda a ela. Para obter mais informações, consulte Visão geral das janelas do WPF e Visão geral das caixas de diálogo.

Se você estiver interessado em abrir caixas de diálogo do sistema operacional, consulte Como abrir uma caixa de diálogo comum.

Aberto como modal

Quando uma janela modal é aberta, ela geralmente representa uma caixa de diálogo. O WPF restringe a interação à janela modal e o código que abriu a janela pausa até que a janela seja fechada. Esse mecanismo fornece uma maneira fácil de solicitar dados ao usuário e aguardar sua resposta.

Use o ShowDialog método para abrir uma janela. O código a seguir instancia a janela e a abre modalmente. O código que abre a janela pausa, aguardando que a janela seja fechada:

var window = new Margins();

window.Owner = this;
window.ShowDialog();
Dim myWindow As New Margins()

myWindow.Owner = Me
myWindow.ShowDialog()

Importante

Depois que uma janela é fechada, a mesma ocorrência de objeto não pode ser usada para reabrir a janela.

Para obter mais informações sobre como manipular a resposta do usuário a uma caixa de diálogo, consulte Visão geral das caixas de diálogo: processando a resposta.

Abrir como sem modo

Abrir uma janela sem modo significa exibi-la como uma janela normal. O código que abre a janela continua a ser executado à medida que a janela se torna visível. Você pode focar e interagir com todas as janelas sem moderação exibidas pelo seu aplicativo, sem restrições.

Use o Show método para abrir uma janela. O código a seguir instancia a janela e a abre sem modo. O código que abre a janela continua a ser executado:

var window = new Margins();

window.Owner = this;
window.Show();
Dim myWindow As New Margins()

myWindow.Owner = Me
myWindow.Show()

Importante

Depois que uma janela é fechada, a mesma ocorrência de objeto não pode ser usada para reabrir a janela.

Confira também