如何自定义WPF应用程序的启动?

时间:2012-11-16 22:33:51

标签: wpf startup

创建新的WPF应用程序项目时,会自动生成MainWindow.xamlApp.xaml及其后面的相应代码。在App.xaml中,有一个属性可以定义最初要运行的窗口,默认情况下是StartupUri="MainWindow.xaml"

我在同一个项目中创建了一个新的Dispatcher类。在启动时,我希望构造该类Dispatcher的实例,然后运行其中一个方法。该方法实际上会创建并显示MainWindow窗口。那么如何修改App.xamlApp.xaml.cs才能实现呢?或者,如果App无法完成,我该如何实施呢?感谢。

2 个答案:

答案 0 :(得分:45)

您可以从App.xaml中删除StartupUri属性。

然后,通过在App.xaml.cs中为OnStartup()创建覆盖,您可以创建Dispatcher类的新实例。

这是我的快速app.xaml.cs实现的样子:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);

      new MyClassIWantToInstantiate();
    }
  }
}

<强>更新

如果您使用此方法自定义应用启动,我最近发现了this workaround错误,并且突然找不到任何应用级资源。

答案 1 :(得分:2)

尝试使用Startup事件(类Application) - MSDN

您可以在创建Dispatcher实例后在此事件处理程序中显示MainWindow。