2009-12-22 51 views
1

总是让我烦恼C#如何为您启动启动。所以现在我正在试图制定我自己的主要方法。它不工作:更改WPF项目的主要内容

我已经提供了这个主要方法:

[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 witht相同的代码,而是抛出异常。 如果您有其他解决方案,我愿意听到。我只是不明白为什么我的MainWindow必须先创建。

回答

5

你是对的:你需要实例应用程序并调用运行在上面。 (您可以在Main中执行此操作。)要使其在运行时显示窗口,有三种选择:

  • 使用运行(窗口)过载,例如, MainWindow w = ...; new MyApp().Run(w);
  • 设置StartupUri例如myApp.StartupUri = new Uri(...); myApp.Run();
  • 在启动事件或OnStartup中进行显示是否覆盖myApp.Startup += (...) => new MainWindow().Show();
的手动启动代码

例子下Application.Run()Application.Run(Window)条目显示在MSDN - 这些应该让你开始! Run()过载也讨论了为什么需要Application.Run并且它的作用是启动调度程序循环。

+0

谢谢!正是我需要知道的:) – 2009-12-22 19:00:54

0

总是让我烦恼我C#如何为您做启动。所以现在我正在试图制定我自己的主要方法。它不工作:

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

您可以选择的形式

而且 - 如果你希望出现在窗口,你少了一行:

window.Show(); 
+0

应用程序在我看到窗口后立即关闭。 – 2009-12-22 18:38:04

+0

window.Show我相信会导致窗口出现,然后在进程退出时立即消失(因为Show不会等待窗口关闭)。 – itowlson 2009-12-22 18:38:53

+0

然后使用window.ShowDialog(); – 2009-12-22 19:00:21