Eventos
Crie aplicativos e agentes de IA
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Este artigo ensina como obter ou definir a janela principal do aplicativo para o Windows Presentation Foundation (WPF). O primeiro Window que é instanciado em um aplicativo WPF é definido automaticamente como Application a janela principal do aplicativo. A janela principal é referenciada com a Application.MainWindow propriedade.
Na maioria das vezes, um modelo de projeto definirá o Application.StartupUri como um arquivo XAML em seu aplicativo, como _Window1.xaml_. Essa é a primeira janela instanciada e mostrada pelo aplicativo e se torna a janela principal.
Dica
O comportamento padrão de um aplicativo é desligar quando a última janela for fechada. Esse comportamento é controlado pela Application.ShutdownMode propriedade. Em vez disso, você pode configurar o aplicativo para desligar se o MainWindow estiver fechado. Defina Application.ShutdownMode como OnMainWindowClose para habilitar esse comportamento.
Os modelos que geram seu aplicativo WPF normalmente definem a Application.StartupUri propriedade como um arquivo XAML. Essa propriedade é útil porque:
<Application x:Class="MainApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MainApp"
StartupUri="Window1.xaml">
</Application>
Em vez de usar Application.StartupUrio , você pode definir o como uma janela declarada Application.MainWindow por XAML. No entanto, a janela especificada aqui não será exibida e você deve definir sua visibilidade.
<Application x:Class="MainApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MainApp">
<Application.MainWindow>
<local:Window2 Visibility="Visible" />
</Application.MainWindow>
</Application>
Cuidado
Se você definir as propriedades e Application.StartupUri , Application.MainWindow exibirá as duas janelas quando o aplicativo for iniciado.
Além disso, você pode usar o Application.Startup evento para abrir uma janela. Para obter mais informações, consulte Usar o evento Startup para abrir uma janela.
A primeira janela instanciada pelo aplicativo se torna automaticamente a janela principal e é definida como a Application.MainWindow propriedade. Para definir uma janela principal diferente, altere esta propriedade para uma janela:
Application.Current.MainWindow = new Window2();
Application.Current.MainWindow.Show();
Application.Current.MainWindow = New Window2()
Application.Current.MainWindow.Show()
Se o aplicativo nunca tiver criado uma instância de uma janela, o código a seguir será funcionalmente equivalente ao código anterior:
var appWindow = new Window2();
appWindow.Show();
Dim appWindow As New Window2()
appWindow.Show()
Assim que a instância do objeto de janela é criada, ela é atribuída ao Application.MainWindow.
Você pode acessar a janela escolhida como janela principal inspecionando a Application.MainWindow propriedade. O código a seguir exibe uma caixa de mensagem com o título da janela principal quando um botão é clicado:
private void Button_Click(object sender, RoutedEventArgs e) =>
MessageBox.Show($"The main window's title is: {Application.Current.MainWindow.Title}");
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
MessageBox.Show($"The main window's title is: {Application.Current.MainWindow.Title}")
End Sub
Comentários do .NET Desktop feedback
O .NET Desktop feedback é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
Crie aplicativos e agentes de IA
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agora