在做任何事情之前做某事

本文关键字:任何事 | 更新日期: 2023-09-27 17:51:04

不好意思,混淆了title =D

WindowsForms中,我有Main方法,我可以在创建或显示主表单之前使用来做一些。例如,处理命令行参数,显示启动窗口和预加载配置,有几个窗口一个接一个地显示,主循环(当有一个可重复的工作序列时,那么Main是放置do{}while的好地方),等等。

WPF中哪一个是Main方法的最佳模拟?

我尝试使用Application.Startup事件,但它有一些问题。

我可以想到以某种方式编程创建wpf应用程序(然后我应该从xaml自动生成的Main中解脱出来,可以拥有自己的CC_8)。但这一切听起来太复杂了。我可能漏掉了一些很简单的东西。

在做任何事情之前做某事

从WinForms开发转移到WPF开发可能涉及到一点心态上的改变。我会看看WPF和MVVM,网上有很多资源。

之后,您应该开始查看构建在此基础上的各种框架,例如Prism, Caliburn。Micro, MVVMLight等,它们都有关于使用启动屏幕和复合窗口构建WPF应用程序的各种教程和文档。

为了它的价值,App.xaml.cs中的protected override void OnStartup是你想要"在任何事情之前做一些事情"的地方,比如,在加载主屏幕之前显示一个启动画面。

解决方案是…

为此,我必须禁用自动生成Main(通过将App.xaml属性BuildAction设置为Page,而不是默认的ApplicationDefinition),然后我可以在Application类中创建自己的Main:

public partial class App : Application
{
    [STAThread]
    public static void Main()
    {
    }
}

我可以完全控制何时以及如何显示窗口,进行初始化,取消初始化等。