C# 启动WPF应用程序时,App_Startup()与OnStartup()的比较
我开始了一个新的WPF项目,我需要在应用程序启动照明 我观看了两个不同的WPF项目,以了解如何开始 第一个从App.xaml.cs文件中的void App_Startupobject发送方StartupEventArgs e方法开始,该方法直接从App.xaml文件Startup=App_Startup调用。 另一个以App.xaml.cs文件中受保护的override void onStartupEventArgs e方法开始。 此外,当我启动我的WPF项目时,默认代码模板以第三种方式启动,即App.xaml文件中的StartupUri=MainWindow.xaml 这三种方式的区别是什么?Startup=App\u Startup只是应用程序的事件处理程序,它是在App.xaml中启动的。它有事件启动,您可以订阅。如果你想有一些预加载逻辑,这是一个完美的地方 如果您只想显示窗口,在该窗口的StartUpUri中指定URI就足够了,这样应用程序就知道要加载哪个文件以及要显示哪个窗口: OnStartup在base.OnStratUp中引发应用程序启动事件: OnStartup引发启动事件 从应用程序派生的类型可以在启动时重写。如果需要引发启动事件,则重写的方法必须在基类中调用OnStartup 还可以设置一些预加载逻辑 没有推荐的方法,这取决于您和您需要什么。Startup=App\u Startup只是应用程序的事件处理程序,它是在App.xaml中启动的。它有事件启动,您可以订阅。如果你想有一些预加载逻辑,这是一个完美的地方 如果您只想显示窗口,在该窗口的StartUpUri中指定URI就足够了,这样应用程序就知道要加载哪个文件以及要显示哪个窗口: OnStartup在base.OnStratUp中引发应用程序启动事件: OnStartup引发启动事件 从应用程序派生的类型可以在启动时重写。如果需要引发启动事件,则重写的方法必须在基类中调用OnStartup 还可以设置一些预加载逻辑 没有推荐的方法,这取决于您和您需要什么。启动是由应用程序基类的OnStartup方法引发的事件,如中所示。这就是它的实现方式:C# 启动WPF应用程序时,App_Startup()与OnStartup()的比较,c#,.net,wpf,C#,.net,Wpf,我开始了一个新的WPF项目,我需要在应用程序启动照明 我观看了两个不同的WPF项目,以了解如何开始 第一个从App.xaml.cs文件中的void App_Startupobject发送方StartupEventArgs e方法开始,该方法直接从App.xaml文件Startup=App_Startup调用。 另一个以App.xaml.cs文件中受保护的override void onStartupEventArgs e方法开始。 此外,当我启动我的WPF项目时,默认代码模板以第三种方式启动,即
protected virtual void OnStartup(StartupEventArgs e)
{
VerifyAccess();
StartupEventHandler handler = (StartupEventHandler)Events[EVENT_STARTUP];
if (handler != null)
{
handler(this, e);
}
}
因此,如果您在应用程序类中重写OnStartup并调用base.OnStartupe,则将引发该事件并调用任何附加的事件处理程序。您是在事件处理程序中实现逻辑,还是直接在重写的OnStartup中实现逻辑,取决于个人或特定于应用程序的偏好。关于为什么一个比另一个更好,没有任何建议
对于StartupUri,只有当您只想在启动时立即显示一个默认窗口,并且没有任何自定义初始化逻辑时,才有必要设置它
在企业应用程序中,通常会有某种引导程序来设置应用程序及其依赖项,并以编程方式创建和显示主窗口,而不是使用StartupUri属性。Startup是由应用程序基类的OnStartup方法引发的事件,如中所示。这就是它的实现方式:
protected virtual void OnStartup(StartupEventArgs e)
{
VerifyAccess();
StartupEventHandler handler = (StartupEventHandler)Events[EVENT_STARTUP];
if (handler != null)
{
handler(this, e);
}
}
因此,如果您在应用程序类中重写OnStartup并调用base.OnStartupe,则将引发该事件并调用任何附加的事件处理程序。您是在事件处理程序中实现逻辑,还是直接在重写的OnStartup中实现逻辑,取决于个人或特定于应用程序的偏好。关于为什么一个比另一个更好,没有任何建议
对于StartupUri,只有当您只想在启动时立即显示一个默认窗口,并且没有任何自定义初始化逻辑时,才有必要设置它
在企业应用程序中,通常会有某种引导程序来设置应用程序及其依赖项,并以编程方式创建和显示主窗口,而不是使用StartupUri属性