如何在Console Project中使用Main()启动窗口。

我有一个控制台项目,但现在我需要打开一个用户界面。 所以我正在使用3层模型(演示,业务,访问数据)。

在我的方法Main()我调用表示层(如Window窗体或Wpf中的app),因此,在表示层中是通过CONSOLE与用户交互。

现在我在表示层中添加一个名为“UserInterface.xaml”的窗口来代替控制台。 因为应该使用INTERFACE而不是控制台。

我观察到在MainWindow中调用的是MainWindow.Show();

但我不知道如何调用我的“UserInterface.xaml”,因为没有.Show()方法。

这是我的方法主要:

 public static void Main() { MainWindow.Show(); // THIS IS WITH MainWindow.xaml UserInterface.??? // THIS IS MY CASE WITH UserInterface.xaml } 

那么有人可以告诉我如何从Main方法调用我的窗口吗?

你肯定开始使用错误的项目模板。 要使WPF窗口可见且交互,您必须遵循UI线程的规则。 其中包括将应用程序的主线程标记为STA线程并抽取消息循环。 像这样:

 class Program { [STAThread] public static void Main() { var app = new Application(); app.Run(new MainWindow()); } } 

请注意,Application.Run()是一个阻塞调用,在用户关闭主窗口之前它不会返回。 这是Windows工作方式的一个相当不可避免的结果。

假设UserInterface真的是一个窗口,这应该工作:

 var window = new UserInterface(); window.Show();