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

ale*_*ale 1 c# wpf console console-application wpf-controls

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

在我的方法中,Main()我调用表示层(如窗体形式或Wpf中的应用程序),因此,在表示层中是通过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
}
Run Code Online (Sandbox Code Playgroud)

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

Han*_*ant 5

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

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

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