Application.Startup 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在调用 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 查询字符串参数不同 (。