30

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

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

4

2 回答 2

51

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

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

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

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

      new MyClassIWantToInstantiate();
    }
  }
}

更新

如果您使用此方法自定义应用程序启动并且突然找不到应用程序级资源,我最近发现了此解决方法的错误。

于 2012-11-16T22:59:59.303 回答
3

尝试使用 Startup 事件(应用程序类)- MSDN

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

于 2012-11-16T22:55:40.300 回答