Application.Startup 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
调用对象的方法Application时Run()发生。
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 命令行参数,应用程序会以最小化状态打开主窗口。
<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
XAML 浏览器应用程序(XBAP)无法检索和处理命令行参数,因为它们是使用 ClickOnce 部署启动 的(请参阅部署 WPF 应用程序(WPF))。 但是,他们可以从用于启动它们的 URL 检索和处理查询字符串参数。
注解
典型的 Windows Presentation Foundation 应用程序在启动时可能会执行各种初始化任务,包括:
处理命令行参数。
打开主窗口。
初始化应用程序范围资源。
初始化应用程序范围属性。
可以使用 XAML(StartupUri 以及 Resources,分别)声明性地指定主窗口和应用程序范围资源。 但是,有时,应用程序的资源或主窗口只能在运行时以编程方式确定。 此外,应用程序范围属性和命令行参数只能以编程方式使用。 可以通过处理 Startup 事件来执行编程初始化,包括以下内容:
获取和处理命令行参数,这些参数可从Args传递给Startup事件处理程序的StartupEventArgs类的属性获取和处理。
使用 Resources 属性初始化应用程序范围资源。
使用 Properties 属性初始化应用程序范围属性。
实例化并显示一个或多个窗口。
注释
还可以通过调用对象的静态 GetCommandLineArgs 方法 Environment 获取命令行参数。 但是, GetCommandLineArgs 需要完全信任才能执行。
如果使用 XAML 设置StartupUri,则创建的主窗口在处理事件之前Startup,该属性或Windows对象的属性Application均不可用MainWindow。 如果在启动期间需要访问主窗口,则需要从 Startup 事件处理程序手动创建新窗口对象。
注释
如果应用程序用于CredentialPolicy指定凭据策略,则需要在引发后Startup设置CredentialPolicy;否则,WPF 会直接在引发事件后Startup将其设置为默认内部策略。
传递给事件处理程序的 Startup 命令行参数与传递给 XAML 浏览器应用程序的 URL 查询字符串参数不同(XBAP)。