我有一个控制台项目,但现在我需要打开一个用户界面。所以我使用的是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
}
那么有人可以告诉我如何从Main方法调用我的窗口吗?
答案 0 :(得分:5)
你肯定是从错误的项目模板开始的。要使WPF窗口可见并具有交互性,您必须遵循UI线程的规则。其中包括将应用程序的主线程标记为STA线程并抽取消息循环。像这样:
class Program {
[STAThread]
public static void Main() {
var app = new Application();
app.Run(new MainWindow());
}
}
请注意,Application.Run()是一个阻塞调用,在用户关闭主窗口之前不会返回。这是Windows工作方式的必然结果。
答案 1 :(得分:1)
假设UserInterface
确实是一个窗口,这应该可行:
var window = new UserInterface();
window.Show();