2012-06-14 97 views
1

在我的WinForms典型UI测试的形式为:在测试打开一个窗口WPF

[TestMethod] 
    public void SomeTest() 
    { 
     if(RunManualTests) 
     { 
      TestForm form = new TestForm(); 
      SomeControl control = new SomeControl(); 
      form.Controls.Add(control); 
      form.ShowDialog(); 
     } 
    } 

在WPF中,似乎是App.xaml中的要求。 App.xaml具有StartupUri="MainWindow.xaml"属性。我需要添加这个文件吗?如果是的话,我该如何动态设置StartupUri?

换句话说,如何将我的Winform测试转换为WPF?

回答

3

有使用StartupUri没有要求,你可以在适当的C#代码中使用

Window w = new Window(); 
w.Content = new TestControl();//replaces form.Controls.Add(...) 
w.ShowDialog(); 

代替。但是,您需要关注此代码以在调度程序线程(即运行Dispatcher的前台STA线程 - 通常是WPF应用程序的主线程)中运行。

您通常不需要任何对应的form.Controls.Add(...),因为控件通常在XAML文件中描述。 (但是,如果您真的想要,也可以手动添加它们。)

+0

MSTest项目不包括WPF工作所需的引用。将WPF用户控件添加到项目中,这会添加除System.Xaml之外的所有缺少的引用。 –