Application.Startup Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre quando o Run() método do Application objeto é chamado.
public:
event System::Windows::StartupEventHandler ^ Startup;
public event System.Windows.StartupEventHandler Startup;
member this.Startup : System.Windows.StartupEventHandler
Public Custom Event Startup As StartupEventHandler
Tipo de Evento
Exemplos
O exemplo seguinte mostra como adquirir e processar opções de linha de comandos a partir de uma aplicação autónoma. Se o parâmetro de linha de comandos /StartMinimized for fornecido, a aplicação abre a janela principal num estado minimizado.
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.App"
Startup="App_Startup" />
using System.Windows;
namespace SDKSample
{
public partial class App : Application
{
void App_Startup(object sender, StartupEventArgs e)
{
// Application is running
// Process command line args
bool startMinimized = false;
for (int i = 0; i != e.Args.Length; ++i)
{
if (e.Args[i] == "/StartMinimized")
{
startMinimized = true;
}
}
// Create main application window, starting minimized if specified
MainWindow mainWindow = new MainWindow();
if (startMinimized)
{
mainWindow.WindowState = WindowState.Minimized;
}
mainWindow.Show();
}
}
}
Imports System.Windows
Namespace SDKSample
Partial Public Class App
Inherits Application
Private Sub App_Startup(ByVal sender As Object, ByVal e As StartupEventArgs)
' Application is running
' Process command line args
Dim startMinimized As Boolean = False
Dim i As Integer = 0
Do While i <> e.Args.Length
If e.Args(i) = "/StartMinimized" Then
startMinimized = True
End If
i += 1
Loop
' Create main application window, starting minimized if specified
Dim mainWindow As New MainWindow()
If startMinimized Then
mainWindow.WindowState = WindowState.Minimized
End If
mainWindow.Show()
End Sub
End Class
End Namespace
As aplicações de navegador XAML (XBAPs) não conseguem recuperar e processar argumentos de linha de comandos porque são iniciados com a implementação ClickOnce (ver Deploying a WPF Application (WPF)). No entanto, podem recuperar e processar parâmetros de string de consulta dos URLs usados para os lançar.
Observações
Uma aplicação típica do Windows Presentation Foundation pode realizar uma variedade de tarefas de inicialização quando arranca, incluindo:
A processar parâmetros da linha de comandos.
A abrir a janela principal.
Inicializar recursos no âmbito da aplicação.
Inicialização das propriedades do âmbito da aplicação.
Pode especificar declarativamente a janela principal e os recursos de âmbito da aplicação usando XAML (StartupUri e Resources, respetivamente). Por vezes, no entanto, os recursos ou a janela principal da sua aplicação só podem ser determinados programaticamente em tempo de execução. Além disso, as propriedades do âmbito da aplicação e os parâmetros da linha de comandos só podem ser usados programaticamente. A inicialização programática pode ser realizada ao lidar com o Startup evento, incluindo o seguinte:
Adquirir e processar parâmetros de linha de comandos, que estão disponíveis a partir da Args propriedade da StartupEventArgs classe que é passada ao Startup gestor de eventos.
Inicialize os recursos do âmbito da aplicação utilizando a Resources propriedade.
Inicialize as propriedades do escopo da aplicação usando a propriedade Properties .
Instancia e mostra uma (ou mais) janelas.
Note
Os parâmetros da linha de comandos também podem ser adquiridos chamando o método estático GetCommandLineArgs do Environment objeto. No entanto, GetCommandLineArgs requer total confiança para ser executado.
Se definir StartupUri usando XAML, a janela principal criada não está disponível nem pela propriedade MainWindow nem pela propriedade Windows do objeto Application até que o evento Startup seja processado. Se precisares de acesso à janela principal durante o arranque, tens de criar manualmente um novo objeto de janela a partir do teu Startup gestor de eventos.
Note
Se a sua candidatura usar CredentialPolicy para especificar uma política de credenciais, precisa de definir CredentialPolicy após Startup ser aumentado; caso contrário, WPF define para uma política interna por defeito imediatamente após o evento Startup ter sido ativado.
Os argumentos da linha de comandos que são passados para o Startup gestor de eventos não são os mesmos que os parâmetros da string de consulta URL que são passados para uma aplicação de navegador XAML (XBAP).