在WPF项目中更改Main

总是烦恼我C#想要为你做这个创业公司。 所以现在我正在尝试制作自己的主要方法。 这不起作用:

我提供了这个主要方法:

[System.STAThreadAttribute()] [System.Diagnostics.DebuggerNonUserCodeAttribute()] public static void Main() { Model model= new Model(); Controller controller = new Controller(model); MainWindow window = new MainWindow(controller, model); } 

这个方法运行,但我看不到任何视觉效果。 我想我错过了以下正常主要代码:

 Application.App app = new Application.App(); app.InitializeComponent(); app.Run(); 

我尝试使用相同的代码覆盖OnStartUp,但是会引发exception。 如果您有其他解决方案,我愿意听。 我只是不明白为什么我的MainWindow必须先创建。

你是对的:你需要实例化一个应用程序并在其上调用Run。 (你在Main中这样做。)为了让它在运行时显示你的窗口,有三个选项:

  • 使用Run(Window)重载,例如MainWindow w = ...; new MyApp().Run(w); MainWindow w = ...; new MyApp().Run(w);
  • 设置StartupUri,例如myApp.StartupUri = new Uri(...); myApp.Run(); myApp.StartupUri = new Uri(...); myApp.Run();
  • Show in Startup事件或OnStartup覆盖例如myApp.Startup += (...) => new MainWindow().Show();

MSDN中的Application.Run()和Application.Run(Window)条目中显示了手动启动代码的示例 – 这些应该可以帮助您入门! Run()重载还讨论了为什么需要Application.Run以及它做什么,例如启动调度程序循环。

总是烦恼我C#想要为你做这个创业公司。 所以现在我正在尝试制作自己的主要方法。 这不起作用:

C#不会为您启动。 它会为您插入代码。 您可以随时更改代码,以便随意更改。 如果我是你,我会做的第一件事 – 右键单击​​项目文件,然后选择属性。 在应用程序(顶部选项卡)下 – 请参阅启动对象。

您可以选择表格

此外 – 如果您希望窗口显示,则错过了一行:

 window.Show();