Application.Startup 事件

定义

在调用 Run() 对象的 Application 方法时发生。

public:
 event System::Windows::StartupEventHandler ^ Startup;
public event System.Windows.StartupEventHandler Startup;
member this.Startup : System.Windows.StartupEventHandler 
Public Custom Event Startup As StartupEventHandler 

事件类型

示例

以下示例演示如何从独立应用程序获取和处理命令行选项。 如果提供了 /StartMinimized 命令行参数,则应用程序将在最小化状态下打开main窗口。

<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

(XBAP) 的 XAML 浏览器应用程序无法检索和处理命令行参数,因为它们是使用 ClickOnce 部署启动的 (请参阅 将 WPF 应用程序 (WPF) ) 。 但是,它们可以检索和处理来自用于启动它们的 URL 的查询字符串参数。

注解

典型的Windows Presentation Foundation应用程序在启动时可能会执行各种初始化任务,包括:

  • 处理命令行参数。

  • 打开main窗口。

  • 初始化应用程序范围资源。

  • 初始化应用程序范围属性。

可以分别使用 XAML StartupUri (和 以声明方式指定main窗口和Resources应用程序范围资源,) 。 但是,有时,只能在运行时以编程方式确定应用程序的资源或main窗口。 此外,应用程序范围属性和命令行参数只能以编程方式使用。 可以通过处理 Startup 事件来执行编程初始化,其中包括:

  • 获取并处理命令行参数,这些参数可从 Args 传递给事件处理程序的 类的 StartupEventArgs 属性获取 Startup

  • 使用 Resources 属性初始化应用程序范围资源。

  • 使用 Properties 属性初始化应用程序范围属性。

  • 实例化并显示一个或多个 () 窗口。

注意

还可以通过调用 对象的静态 GetCommandLineArgs 方法 Environment 获取命令行参数。 但是, GetCommandLineArgs 需要完全信任才能执行。

如果使用 XAML 设置StartupUri,则在处理事件之前Startup,创建的main窗口在 对象的 属性或 Windows 属性Application中都不可用MainWindow。 如果在启动期间需要访问main窗口,则需要从Startup事件处理程序中手动创建新窗口对象。

注意

如果应用程序使用 CredentialPolicy 指定凭据策略,则需要在 引发 之后Startup设置 CredentialPolicy ;否则,WPF 会在引发 事件后Startup直接将其设置为默认的内部策略。

传递给事件处理程序的 Startup 命令行参数与传递给 XBAP) XAML 浏览器应用程序的 URL 查询字符串参数不同 (。

适用于

另请参阅