共用方式為


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 命令列參數,應用程式會以最小化狀態開啟主視窗。

<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(StartupUriResources,分別)宣告式地指定主視窗和應用範圍資源。 然而,有時資源或應用程式的主要視窗只能在執行時以程式方式決定。 此外,應用程式範圍屬性與命令列參數只能以程式方式使用。 程式初始化可以透過處理 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 查詢字串參數不同。

適用於

另請參閱