Application.Startup Evento
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.
Ocorre quando o método Run() do objeto Application é 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 a seguir mostra como adquirir e processar opções de linha de comando de um aplicativo autônomo. Se o parâmetro de linha de comando /StartMinimized tiver sido fornecido, o aplicativo abrirá a janela main em um 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
Os XBAPs (aplicativos de navegador XAML) não podem recuperar e processar argumentos de linha de comando porque são iniciados com a implantação do ClickOnce (consulte Deploying a WPF Application (WPF)). No entanto, eles podem recuperar e processar parâmetros de cadeia de caracteres de consulta de URLs usadas para iniciá-los.
Comentários
Um aplicativo de Windows Presentation Foundation típico pode executar uma variedade de tarefas de inicialização quando é iniciado, incluindo:
Processando parâmetros de linha de comando.
Abrindo a janela main.
Inicializando recursos de escopo do aplicativo.
Inicializando propriedades de escopo do aplicativo.
Você pode especificar declarativamente a janela main e os recursos de escopo do aplicativo usando XAML (StartupUri e Resources, respectivamente). Às vezes, no entanto, os recursos ou main janela do aplicativo só podem ser determinados programaticamente em tempo de execução. Além disso, as propriedades de escopo do aplicativo e os parâmetros de linha de comando só podem ser usados programaticamente. A inicialização programática pode ser executada manipulando o Startup evento, incluindo o seguinte:
Adquira e processe parâmetros de linha de comando, que estão disponíveis na Args propriedade da StartupEventArgs classe que é passada para o Startup manipulador de eventos.
Inicialize recursos de escopo do aplicativo usando a Resources propriedade .
Inicialize as propriedades de escopo do aplicativo usando a Properties propriedade .
Instancie e mostre uma (ou mais) janelas.
Observação
Os parâmetros de linha de comando também podem ser adquiridos chamando o método estático GetCommandLineArgs do Environment objeto . No entanto, GetCommandLineArgs requer confiança total para execução.
Se você definir StartupUri usando XAML, a janela main criada não estará disponível na MainWindow propriedade ou na Windows propriedade do Application objeto até que o Startup evento seja processado. Se você precisar de acesso à janela main durante a inicialização, precisará criar manualmente um novo objeto de janela do manipulador Startup de eventos.
Observação
Se o aplicativo usar CredentialPolicy para especificar uma política de credencial, você precisará definir CredentialPolicy depois Startup que for gerado; caso contrário, o WPF o definirá como uma política interna padrão diretamente após o Startup evento ter sido gerado.
Os argumentos de linha de comando que são passados para o Startup manipulador de eventos não são os mesmos que os parâmetros de cadeia de caracteres de consulta de URL que são passados para um aplicativo de navegador XAML (XBAP).