【问题标题】:Change Main in WPF project在 WPF 项目中更改 Main
【发布时间】:2010-12-29 05:21:15
【问题描述】:

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

【问题讨论】:

    标签: c# .net wpf model-view-controller main


    【解决方案1】:

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

    • 使用运行(窗口)重载,例如MainWindow w = ...; new MyApp().Run(w);
    • 设置 StartupUri 例如myApp.StartupUri = new Uri(...); myApp.Run();
    • 在 Startup 事件或 OnStartup 覆盖中执行 Show,例如myApp.Startup += (...) => new MainWindow().Show();

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

    【讨论】:

    • 谢谢!正是我需要知道的:)
    【解决方案2】:

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

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

    您可以选择表格

    另外 - 如果你想显示窗口,你就少了一行:

    window.Show();
    

    【讨论】:

    • window.Show 我相信会导致窗口出现,然后在进程退出时立即消失(因为 Show 不会等待窗口关闭)。
    • 然后使用 window.ShowDialog();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多