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).