1

我在 Winforms 中的典型 UI 测试形式如下:

    [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?

4

1 回答 1

3

对使用没有要求StartupUri,你可以使用

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

而是在适当的 C# 代码中。但是,您需要注意此代码在调度程序线程中运行(即,前台 STA 线程,它有一个正在运行的Dispatcher- 通常是 WPF 应用程序的主线程)。

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

于 2012-06-14T14:18:50.580 回答