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, приложение открывает окно 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

Приложениям браузера XAML (XBAP) не удается получить и обработать аргументы командной строки, так как они запускаются с развертыванием ClickOnce (см. статью Развертывание приложения WPF (WPF)). Однако они могут извлекать и обрабатывать строковые параметры запроса из URL-адресов, которые используются для их запуска.

Комментарии

Обычное приложение Windows Presentation Foundation может выполнять различные задачи инициализации при запуске, в том числе:

  • Обработка параметров командной строки.

  • Открытие окна main.

  • Инициализация ресурсов область приложений.

  • Инициализация свойств область приложений.

Можно декларативно указать окно main и ресурсы область приложений с помощью XAML (StartupUri и Resourcesсоответственно). Однако иногда ресурсы или окно main приложения можно определить только программным способом во время выполнения. Кроме того, свойства область приложения и параметры командной строки можно использовать только программным способом. Программная инициализация может быть выполнена путем Startup обработки события, включая следующее:

  • Получение и обработка параметров командной строки, доступных StartupEventArgs из Args свойства класса , передаваемого обработчику Startup событий.

  • Инициализируйте Resources ресурсы область приложения с помощью свойства .

  • Инициализируйте Properties свойства область приложения с помощью свойства .

  • Создание экземпляра и отображение одного (или нескольких) окон.

Примечание

Параметры командной строки также можно получить, вызвав статический GetCommandLineArgsEnvironment метод объекта . Однако GetCommandLineArgs для выполнения требуется полное доверие.

Если задать StartupUri с помощью XAML, созданное окно main будет недоступно ни в свойствеMainWindow, ни в свойстве WindowsApplication объекта до тех пор, Startup пока не будет обработано событие. Если во время запуска требуется доступ к окну main, необходимо вручную создать новый объект окна из Startup обработчика событий.

Примечание

Если приложение использует CredentialPolicy для указания политики учетных данных, необходимо задать CredentialPolicy после Startup вызова; в противном случае WPF устанавливает для него внутреннюю политику по умолчанию непосредственно после Startup возникновения события.

Аргументы командной строки, передаваемые обработчику Startup событий, не совпадают с параметрами строки запроса URL-адреса, которые передаются в приложение браузера XAML (XBAP).

Применяется к

См. также раздел