如何在控制台项目中使用Main()启动窗口。
我有一个控制台项目,但现在我需要把用户界面。所以我使用3层模型(演示,业务,访问数据)。如何在控制台项目中使用Main()启动窗口。
在我的方法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方法调用我的窗口?
你一定开始了与错误的项目模板。为了使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();
不能识别.Show();. ..和UserInterface是一个窗口。 – ale 2011-05-19 23:15:08
在这种情况下,你将不得不向我们展示更多的代码,因为如果'UserInterface'是一个'Window',它将有一个'Show()'方法。 UserInterface的源代码是怎么样的? – svick 2011-05-19 23:28:42
这是UserInterface类的一部分,您看到的是一个普通窗口:public class UserInterface:Window { public EventHandler
可能重复[自Programm类以来打开窗口?](http://*.com/questions/6073658/open-a-window-since-programm-class) – 2011-05-21 11:44:28