如何在 Nunit 中调用 WPF Dispatcher?

2024-01-26

我想测试一个使用数据字段值呈现文本块的应用程序。渲染完成后,我想获得实际宽度和实际高度。一切正常。当我尝试测试该应用程序时,问题首先出现。我无法从测试项目调用调度程序。

以下是代码。

this.Loaded += (s, e) =>
{
    TextBlock textBlock1 = new TextBlock();

    //// Text block value is assigned from data base field.
    textBlock1.Text = strValueFromDataBaseField;        
    //// Setting the wrap behavior.
    textBlock1.TextWrapping = TextWrapping.WrapWithOverflow;
    //// Adding the text block to the layout canvas.
    this.layoutCanvas.Children.Add(textBlock1);

    this.Dispatcher.BeginInvoke(DispatcherPriority.Background,
        (Action)(() =>
            {
                //// After rendering the text block with the data base field value. Measuring the actual width and height.
               this.TextBlockActualWidth = textBlock1.ActualWidth;
               this.TextBlockActualHeight = textBlock1.ActualHeight;

               //// Other calculations based on the actual widht and actual height.
            }
        ));
};

我刚刚开始使用 NUnit。所以,请帮助我。

Thanks


您可能想看看http://www.codeproject.com/KB/WPF/UnitTestDispatcherTimer.aspx http://www.codeproject.com/KB/WPF/UnitTestDispatcherTimer.aspx它涉及一个DispatcherTimer在 WPF 和 NUnit 中,它们又使用Dispatcher.

Edit

从链接中尝试在测试之前执行此操作:

Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Normal, testMethod);
// Start the worker thread's message pump
Dispatcher.Run();  // This will block until the dispatcher is shutdown

并在测试后停止。

Dispatcher disp = Dispatcher.CurrentDispatcher;
// Kill the worker thread's Dispatcher so that the
// message pump is shut down and the thread can die.
disp.BeginInvokeShutdown(DispatcherPriority.Normal);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Nunit 中调用 WPF Dispatcher? 的相关文章

  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • ASP.Net Core 内容配置附件/内联

    我正在从 WebAPI 控制器返回一个文件 Content Disposition 标头值自动设置为 附件 例如 处置 附件 文件名 30956 pdf 文件名 UTF 8 30956 pdf 当它设置为附件时 浏览器将要求保存文件而不是打
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • IEnumerable.Except 不起作用,那么我该怎么办?

    我有一个 linq to sql 数据库 非常简单 我们有 3 个表 项目和用户 有一个名为 User Projects 的连接表将它们连接在一起 我已经有了一个获得的工作方法IEnumberable
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte

随机推荐

  • 如何在 Django 500.html 页面中包含堆栈跟踪?

    我在跑Django 1 0我即将部署我的应用程序 因此 我将把 DEBUG 设置更改为 False 话虽如此 当错误发生时 我仍然希望在 500 html 页面上包含堆栈跟踪 通过这样做 用户可以复制并粘贴错误并轻松地将其通过电子邮件发送给
  • 联系表单脚本未发送表单

    我有这个 PHP 联系表单脚本 如下所示 我以前使用过它 所以我知道它可以工作 但是 由于我将 html 表单隐藏在一个新的 jQuery 支持的 div 中 div class toggle hidemail href Email us
  • 传入工作日名称以获取 SQL 中最接近的日期

    我正在研究一个处理频率值的查询 即星期一 星期二等 思考作业 所以在我的查询中我目前的结果是 jobId 1 personId 100 frequencyVal Mondays jobId 2 personId 101 frequencyV
  • JavaFX - 动态关闭 TabPane 中的选项卡

    我有一个带有可关闭选项卡的 TabPane 当用户单击选项卡内容中的按钮时 我想触发 关闭选项卡事件 这是用户单击按钮时调用的方法 public class CustomTab extends Tab protected void clos
  • 我应该安装@types/node吗? VSCode 好像自动安装了

    我看到很多人都在安装 types node在他们的开发依赖项中 但是 如果您在 VSCode 中打开一个空文件夹 并创建一个空的 js 文件 然后输入 const fs require fs lt hover it and type sho
  • GNU Make for 带有两个变量的循环

    我想写一些这样的内容 foreach var1 var2 LIST1 LIST2 cp var1 var2 我该如何在 GNU makefile 中执行此操作 Beta关于使用join的建议是正确的 但问题是 以构造包含空格的命令行的方式使
  • Firestore 活动文档快照侦听器中断排序

    我遇到了一个 Firestore 问题 希望有人可以帮助我解决 我有一个活动文档快照侦听器 它似乎破坏了排序行为 我不确定为什么 在组件的构造函数中 我初始化文档快照侦听器一次 this listen this fs collection
  • 数据库允许应用程序始终通过 SP 进行 CRUD 操作是最佳实践吗?

    我听过这背后的推理 我很好奇其他人是否认为这是最佳实践 好主意 一种推理是 限制对数据库表的直接访问 并强制应用程序 用户使用 SP 存储过程 进行 CRUD 操作将允许 DBA 在将 SP 投入生产之前进行细粒度控制以批准 审查 SP 避
  • 从 monodroid 类库访问资源

    是否可以从引用类库的 monodroid 应用程序中的 monodroid 类库访问文件 使用构建操作 AndroidAsset 我在类库中创建了一个 Assets 文件夹 并添加了一个带有构建操作 Android Asset 的文本文件
  • 如何减少 TextField 上 prefixIcon 的填充?

    我不知道如何超越 48px 材质库默认值 我快速浏览了 SDK 但没有找到任何东西 我知道这与 prefixIcon 参数本身有关 因为无论里面放什么 它总是 48px 或其他任何值 我有一个自定义 SDK 所以如果有人知道它在哪里 我想减
  • GIT 接收后结账,无需根文件夹

    我是 git 新手 试图弄清楚如何通过检查网络根目录来更新每次推送的网站 我搜索了 stackoverflow 只找到了有关如何克隆的主题 这不是我想要的 到目前为止 我已经设置了本地和远程存储库 以及接收后挂钩 bin sh GIT WO
  • iOS:在 UIImage 上绘制 NSString 和边框

    我想在我已有的 UIImage 上绘制一个 NSString 和一个边框 我找到了一种将 NSString 绘制为 UIImage 的方法 但我需要它在我提供的图像上绘制 UIImage imageFromText NSString tex
  • Android Firebase Analytics 控制台中的自定义事件报告

    如果这是发布此问题的不正确位置 请提前接受我的歉意 因为我不确定会是什么 我想要完成的是甚至使用 Firebase 分析来记录自定义 该分析在 Firebase 控制台中生成与他们的示例类似的报告select content事件 其触发方式
  • 无法安装 phpMyAdmin 错误:php71w-common 与 php-common-5.4.16-43.el7_4.1.x86_64 冲突

    我刚刚安装了 CentOS 7 和 PHP 7 1xx 和 MySQL 但无法安装 phpMyAdmin 我有一条错误消息 但在 Google 上没有答案 是的 只有一个答案 但它本身给了我相同的错误消息 rpm iUvh http dl
  • MySQL:`... ADD INDEX(a); 之间的区别... ADD INDEX(b);` 和 `... ADD INDEX(a,b);`?

    有人可以告诉我这两者有什么区别 ALTER TABLE x1 ADD INDEX a ALTER TABLE x1 ADD INDEX b AND ALTER TABLE x1 ADD INDEX a b 我知道这涉及到最基本的问题 但有时
  • Javascript 合并具有嵌套属性的对象

    让我们看一下下面的例子 var ref fullName rules type string minLength 4 maxLength 64 description Full name of a user var user fullNam
  • 如何将大文件导入到 PostgreSQL 中?

    我在一个新项目中 现在必须使用现有的 PostgreSQL 数据库 该应用程序是使用 CakePHP 构建的 我在导入时面临的问题是数据库的文件大小约为 4 8 GB 而我对 PostgreSQL 完全陌生 我曾研究过 MySql 和 No
  • 数据结构填充

    C 中的数据结构填充是什么以及如何检查填充字节的字节数 class a public int x int y int z 处理器要求某些类型的数据具有特定的对齐方式 例如 处理器可能需要int位于 4 字节边界上 因此 例如 一个int可以
  • LinkedBlockingQueue 的 Java 性能问题

    这是我在 stackoverflow 上的第一篇文章 我希望有人能帮助我 我的 Java 6 性能大幅下降LinkedBlockingQueue 在第一个线程中 我生成一些对象并将其推入队列 在第二个线程中 我将这些对象拉出来 当take
  • 如何在 Nunit 中调用 WPF Dispatcher?

    我想测试一个使用数据字段值呈现文本块的应用程序 渲染完成后 我想获得实际宽度和实际高度 一切正常 当我尝试测试该应用程序时 问题首先出现 我无法从测试项目调用调度程序 以下是代码 this Loaded s e gt TextBlock t