2012-11-16 97 views
21

当创建一个新的WPF应用程序项目时,将自动生成MainWindow.xamlApp.xaml及其相应的类后面的代码。在App.xaml有一个定义的属性,它将会窗口中最初运行并默认这是StartupUri="MainWindow.xaml"如何自定义WPF应用程序的启动?

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

回答

38

您可以从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(); 
    } 
    } 
} 

更新

我最近的一个bug发现this workaround如果您使用此方法自定义应用程序启动时,突然无的应用程序级资源可以找到。

+0

是的,谢谢你,那个作品。 – Boris

+0

您能详细说明MyClassIWantToInstantiate()应该是什么吗?我尝试了MainWindow,它是我的WPF应用程序的主窗口的类,在此之后什么也没有发生......它是加载事件代码不执行。 –

+0

该课程可以满足您的任何需求。要显示一个窗口,你必须实例化它,然后调用Show()来显示窗口。 –

2

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

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

相关问题