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 的 URL 中擷取並處理查詢字串參數。
備註
典型的 Windows Presentation Foundation 應用程式在啟動時可能會執行各種初始化任務,包括:
處理命令列參數。
打開主窗。
初始化應用範圍資源。
初始化應用程式範圍屬性。
你可以用 XAML(StartupUri 和 Resources,分別)宣告式地指定主視窗和應用範圍資源。 然而,有時資源或應用程式的主要視窗只能在執行時以程式方式決定。 此外,應用程式範圍屬性與命令列參數只能以程式方式使用。 程式初始化可以透過處理 Startup 事件來執行,包括以下操作:
取得並處理命令列參數,這些參數可從Args傳遞給Startup事件處理器的類別屬性StartupEventArgs中取得。
利用該 Resources 屬性初始化應用範圍的資源。
使用該屬性初始化應用程式範圍屬性 Properties 。
實例化並顯示一個(或多個)視窗。
備註
命令列參數也可透過呼叫物件的Environment靜態GetCommandLineArgs方法取得。 不過,執行 GetCommandLineArgs 需要完全信任。
如果你用 XAML 設定StartupUri,建立的主要視窗在事件處理完成之前Startup,無論是屬性還是Windows物件屬性Application都無法取得MainWindow。 如果你需要在啟動時存取主視窗,就必須從 Startup 事件處理程式手動建立一個新的視窗物件。
備註
如果您的應用程式使用 CredentialPolicy 來指定憑證政策,您需要在事件提出後Startup設定CredentialPolicy;否則,WPF 會在事件提出後Startup立即將其設為預設內部政策。
傳遞給 Startup 事件處理器的命令列參數與傳給 XAML 瀏覽器應用程式(XBAP)的 URL 查詢字串參數不同。