如何在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();