2012-06-14 122 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之外的所有缺少的引用。 –