我正在创建一个Kinect应用程序,并希望从'MainWindow.xaml.cs'文件中打开一个名为'Help'的新窗口。
我尝试使用以下代码:
// The commented code is what I have tried.
public static void ThreadProc()
{
// Window Help = new Window();
//Application.Run(new Window(Help);
Application.Run(new Form());
}
private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProc));
t.Start();
}
答案 0 :(得分:7)
显示一个窗口只需要调用其Show
方法。
但是,保持应用程序运行需要调用Application.Run
。如果您将此方法传递给表单,则会为您调用Show
。
但是,如果您已经有一个正在运行的应用程序,则可以执行new MyForm().Show()
。
我强烈怀疑您不需要为新窗口创建新线程和Application
。你不能只使用:
private void button1_Click(object sender, EventArgs e)
{
new Form().Show();
}
答案 1 :(得分:2)
我不明白为什么你在那里运行应用程序,但通常你通过创建一个实例和showing来打开一个窗口。
var window = new Help(); // Help being the help window class
window.Show();
此外,在后台线程中,它可能会在控制间通信方面造成麻烦。通常,您只想在UI线程上创建和访问UI元素。要将任何操作移动到UI线程,您可以使用UI线程的Dispatcher
。另见:Threading Model
答案 2 :(得分:0)
如果您需要自己的,只需在项目中添加一个新表单,或者从stratch创建自己的表单并调用
myForm.Show()
答案 3 :(得分:0)
键入以下代码以创建并显示新窗口:
//When I type Application1, that is the name of your application
...
Window Application1 = new Window();
Application1.Show;
...
不客气!