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 命令列參數,應用程式會以最小化狀態開啟主視窗。
<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 (和 Resources 分別) StartupUri ,以宣告方式指定主視窗和應用程式範圍資源。 不過,有時候,應用程式的資源或主視窗只能在執行時間以程式設計方式決定。 此外,應用程式範圍屬性和命令列參數只能以程式設計方式使用。 您可以透過處理 Startup 事件來執行程式設計初始化,包括下列專案:
取得和處理命令列參數,可從傳遞至 Startup 事件處理常式之 StartupEventArgs 類別的 屬性取得 Args 和處理。
使用 Resources 屬性初始化應用程式範圍資源。
使用 Properties 屬性初始化應用程式範圍屬性。
具現化並顯示一個 (或多個) 視窗。
注意
您也可以藉由呼叫 物件的 Environment 靜態 GetCommandLineArgs 方法來取得命令列參數。 不過, GetCommandLineArgs 需要完全信任才能執行。
如果您使用 XAML 設定 StartupUri ,在處理事件之前 Startup ,無法從 MainWindow 物件的 屬性或 Windows 屬性 Application 取得所建立的主視窗。 如果您需要在啟動期間存取主視窗,則必須從 Startup 事件處理常式手動建立新的視窗物件。
注意
如果您的應用程式使用 CredentialPolicy 來指定認證原則,您必須在 引發 之後 Startup 設定 CredentialPolicy ;否則,WPF 會在事件引發之後 Startup 直接將它設定為預設的內部原則。
傳遞給事件處理常式的 Startup 命令列引數與傳遞至 XAML 瀏覽器應用程式的 URL 查詢字串參數不同, (XBAP) 。