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,但这会引发异常。如果您有其他解决方案,我愿意倾听。我只是不明白为什么必须首先创建我的主窗口。

有帮助吗?

解决方案

你说得对:您需要实例化一个应用程序并在其上调用 Run。(您可以在 Main 中执行此操作。)要使其在运行时显示您的窗口,有以下三个选项:

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

MSDN 下显示了手动启动代码的示例 应用程序.运行()应用程序.运行(窗口) 条目 - 这些应该可以帮助您入门!Run() 重载还讨论了 为什么 需要 Application.Run 以及它的作用,例如启动调度程序循环。

其他提示

C# 想要为你启动总是让我很恼火。所以现在我正在尝试制作自己的主要方法。它不起作用:

C# 不会为您执行启动操作。它会插入为您执行此操作的代码。您可以随时更改代码,无论您想要什么。如果我是你,我会做的第一件事 - 右键单击​​项目文件并选择属性。在应用程序(顶部选项卡)下 - 请参阅启动对象。

您可以选择表格

另外 - 如果您希望出现窗口,则您会缺少一行:

window.Show();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top