覆盖WPF中的OnStartup

A.R*_*.R. 10 c# wpf startup

出于某种原因,我根本无法使用它.我从各种来源读到我可以在WPF应用程序中覆盖OnStartup,它会在创建应用程序时触发.然而,无论我做什么,都没有发生任何事情.这是代码.

public partial class App : Application
{

    protected override void OnStartup(StartupEventArgs e)
    {
      // My code goes here, but nothing ever happens.

      base.OnStartup(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

显然我错过了一些东西.可悲的是,MSDN页面也没有提供太多的见解. http://msdn.microsoft.com/en-us/library/system.windows.application.onstartup.aspx

我究竟做错了什么?

编辑:
事实证明,我的问题是命名空间中的一个小错字.App.xaml.cs将类定义为'RTDMyApp.App',App.xaml文件将其称为'RTD_MYApp.App'无论如何,这个事实加上下面接受的答案让我重回正轨.

Ern*_*rno 18

你是否从App xaml中删除了StartupUri?

如果你这样做,你必须创建你想要显示的窗口:

base.OnStartUp(e);
Window1 w = new Window1();
this.MainWindow = w;
w.Show(); 
Run Code Online (Sandbox Code Playgroud)


Dan*_*rth 12

我想你真正想做的就是订阅这个Startup活动.您可以在XAML文件中执行此操作:

<Application ... Startup="Application_Startup">
Run Code Online (Sandbox Code Playgroud)

  • 嗯……我觉得这里真的有些不对劲。如果我在“新鲜”应用程序上执行此操作,则一切都很棒。另一方面,我当前的应用程序将不再编译,告诉我它找不到“Application_Startup”,即使它被明确定义。 (2认同)