在 WPF 测试中打开一个窗口

本文关键字:一个 窗口 WPF 测试 | 更新日期: 2023-09-27 18:37:06

我在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?

在 WPF 测试中打开一个窗口

使用

StartupUri没有要求,只需使用

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

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

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