在做任何事情之前做某事
本文关键字:任何事 | 更新日期: 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()
{
}
}
我可以完全控制何时以及如何显示窗口,进行初始化,取消初始化等。