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 (XBAPs) не могут извлекать и обрабатывать аргументы командной строки, так как они запускаются с развертыванием ClickOnce (см. раздел "Развертывание приложения WPF(WPF)". Однако они могут извлекать и обрабатывать параметры строки запроса из URL-адресов, которые используются для их запуска.
Комментарии
Обычное приложение Windows Presentation Foundation может выполнять различные задачи инициализации при запуске, в том числе:
Обработка параметров командной строки.
Открытие главного окна.
Инициализация ресурсов области приложения.
Инициализация свойств области приложения.
Можно декларативно указать основное окно и ресурсы области приложения с помощью XAML (StartupUri и Resourcesсоответственно). Однако иногда ресурсы или главное окно приложения можно определить только программным способом во время выполнения. Кроме того, свойства области приложения и параметры командной строки можно использовать только программным способом. Программная инициализация может выполняться путем обработки Startup события, включая следующее:
Получение и обработка параметров командной StartupEventArgs строки, доступных из Args свойства класса, передаваемого обработчику Startup событий.
Инициализировать ресурсы области приложения с помощью Resources свойства.
Инициализировать свойства области приложения с помощью Properties свойства.
Создайте экземпляр и отображение одного (или нескольких) окон.
Замечание
Параметры командной Environment строки также можно получить путем вызова статического GetCommandLineArgs метода объекта. GetCommandLineArgs Однако для выполнения требуется полное доверие.
Если используется StartupUri XAML, то созданное главное окно недоступно либо из свойства, либо MainWindowWindows свойства Application объекта до тех пор, Startup пока событие не будет обработано. Если во время запуска требуется доступ к главному окну, необходимо вручную создать объект окна из Startup обработчика событий.
Замечание
Если приложение используется CredentialPolicy для указания политики учетных данных, необходимо задать CredentialPolicy после Startup ее возникновения. В противном случае WPF устанавливает ее в внутреннюю политику по умолчанию непосредственно после Startup возникновения события.
Аргументы командной строки, передаваемые обработчику событий, не совпадают с параметрами строки ЗАПРОСА URL-адреса, передаваемыми Startup в приложение браузера XAML (XBAP).