WPF如何优化布局/渲染周期?

2024-01-03

WPF 如何在高度不稳定的应用程序中优化布局/渲染周期?

例如,假设我快速连续两次使自定义控件无效,它会渲染两次吗?当数据/属性更新速率快于主渲染速率时是否存在性能问题?


根据我的经验,我可以说不,如果速度足够快,它不会渲染两次。 我不是 100% 确定,但这就是我认为的原因:

我们有一个非常繁重的应用程序(数千个控件),它是一个飞机驾驶舱,全部在 wpf 中,每个按钮、开关、屏幕都可以通过手势或鼠标移动。

驾驶舱为 10 000 像素 x 10 000 像素,并实现了放大/缩小(使用鼠标滚轮),单击鼠标右键时平移。

优化之前,它非常滞后、缓慢,因此每个“缩放”步骤或“平移”步骤大约需要 1 秒

如果我缩放1倍(例如缩放*1.2),则需要1秒

如果我缩放 10 倍(缩放 * 1.2 X 10),则不需要 10 秒,可能需要 2 秒,具体取决于您滚动的速度,并且它不会渲染每个“缩放步骤”,它只会渲染最后一个。 ..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF如何优化布局/渲染周期? 的相关文章

  • 在 MVC 类上创建主键字段

    我是 MVC 和 C 新手 我只是偶然发现它并发现它很有趣 我遇到了一个不允许我继续的问题 这是我的代码 using System using System Collections Generic using System Linq usi
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • 浏览器收集哪些值作为回发数据?

    当页面被发送回服务器时 浏览器收集每个控件的当前值并将其粘贴到一个字符串中 然后 该回发数据通过 HTTP POST 发送回服务器 Q1 除了控件的 Text 属性和 SelectedIndexchanged 因此除了用户输入数据 之外 控
  • C# ConfigurationManager 从 app.config 检索错误的连接字符串

    我有一个简单的 WinForms 应用程序 它最终将成为一个游戏 现在 我正在研究它的数据访问层 但遇到了障碍 我创建了一个单独的项目 名为DataAccess在其中 我创建了一个本地 mdfSQL Server 数据库文件 我还创建了一个
  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • Type_traits *_v 变量模板实用程序顺序无法编译

    看过了这个答案 https stackoverflow com a 31763111 7151494 我试图想出一个变量模板从中获取代码的实用程序 template
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • 在 C++ 中处理音频缓冲区时,如何执行从 float -> double -> float 的转换

    我目前正在开发一个应用程序 其中音频样本帧在以下回调中进行处理 void Eav07AudioProcessor processBlock AudioSampleBuffer buffer for int channel 0 channel
  • 使用对象列表构建树

    我有一个带有属性 id 和parent id 的对象列表 我想建造一棵树来连接那些孩子和父母 1 个父对象可以有多个子对象 并且有一个对象将成为所有对象的祖先 实现该功能最快的算法是什么 我使用 C 作为编程语言 但其他语言也可以 像这样的
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • 如果数组为空,LINQ 返回 null

    public class Stuff public int x other stuff 我有一个IEnumerable
  • fscanf 和 EOF 中的否定扫描集

    我的文件中有一个以逗号分隔的字符串列表 姓名 1 姓名 2 姓名 3 我想跳过所有逗号来阅读这些名字 我写了以下循环 while true if fscanf file my string 1 break 然而 它总是比预期多执行一次 给定
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • 如何在Linux上构建GLFW3项目?

    我已经使用 cmake 和 make 编译了 glfw3 和包含的示例 没有出现任何问题 开始编写我的第一个项目 作为 opengl 和 glfw 的新手 并且对 C 和 CMake 没有经验 我正在努力理解示例构建文件 甚至要链接哪些库和
  • 统一;随机物体移动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在制作一款机器人战斗游戏 我希望敌人随机移动 然后有时会向敌人移动 我希望运动包含在其中的代码 else if avoid fal
  • 无效的模板相关成员函数模板推导 - 认为我正在尝试使用 std::set

    我有一个继承自基类模板的类模板 基类模板有一个数据成员和一个成员函数模板 我想从我的超类中调用它 我知道为了消除对成员函数模板的调用的歧义 我必须使用template关键字 我必须明确引用this在超级班里 this gt base mem
  • 计算两个日期之间的工作日数?

    在C 中 如何计算business 或工作日 两个日期之间的天数 我以前曾经遇到过这样的任务 并且我已经找到了解决方案 当可以避免的时候 我会避免列举其间的所有日子 这里就是这种情况 正如我在上面的一个答案中看到的那样 我什至没有提到创建一
  • 为什么对于整数键,“Map”操作比 JavaScript (v8) 中的“Object”慢得多?

    我很高兴使用Map对于在我的 JavaScript 代码库中随处访问的索引 但我刚刚偶然发现了这个基准 https stackoverflow com a 54385459 365104 https stackoverflow com a
  • 领域驱动设计示例(特别是 .NET 重点)

    好的 我已经订购了 但是当我等待它到达时 我正在考虑开始在我当前的项目中应用这些技术 我现在确实很好地掌握了这些概念 但是当我尝试应用它们时 我陷入了执行过程中 最终在各个项目中漏掉了我的职责 因此 我正在寻找可以引导我走向正确方向的资源
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码

随机推荐

  • 获取AppServiceProvider中的路由参数

    我在应用程序的每条路线中都设置了公司参数 我正在尝试将该公司的变量发送到每个视图以便于访问 在我的 AppServiceProvider php 中 我尝试了两件事 company App make request gt route gt
  • 字符串与十六进制值的用户定义文字

    关于这个问题 https stackoverflow com questions 63197844 vector from long hex value 63213120 63213120 为什么a用户定义的文字 https en cppr
  • ASP MVC 3:如何对选择列表进行客户端验证?

    在阅读了这里的一些问题 答案后 我设法弄清楚如何将选择列表添加到表单并用数据填充它 如下所示 Html DropDownList S new SelectList ViewBag S Id Nme Sel a S 而且效果很好 不过我想补充
  • 在 Linux 上 - 将最大打开文件数设置为无限制。可能的?

    是否可以将打开文件的最大数量设置为某个 无限 值 或者必须是一个数字 我需要将守护程序用户的描述符限制设置为 无限制 我正在尝试确定这是否可能或如何做到 我看到一些邮件列表引用了可以使用的 最大值 例如 myuser Hard nofile
  • 如何读取JSON数据?

    这是json数据格式吗 string json answer Line 1 mark 1 answer Line 3 mark 1 我尝试下面的代码 但它只适用于一个参数 前任 answer Line 1 mark 1 我尝试拆分 json
  • VS Code devcontainer - Dockerfile 中的 containerUser 和 USER 有什么区别?

    来自doc https code visualstudio com docs remote devcontainerjson reference containerUser 覆盖在容器内运行的所有操作的用户 容器 默认为 root 或最后一
  • 使用 SAX 解析器解析大型 XML 文件(跳过一些行/标签)

    我目前正在开发一个使用 SAX 从互联网检索数据的应用程序 我之前用它来解析简单的 XML 文件 例如 Google Weather API 然而 我感兴趣的网站将解析提升到了一个新的水平 页面很大 看起来很乱 我只需要检索一些特定的行 其
  • 使用 cluster.fork() 调试 Node.js 进程

    我有一些代码看起来非常类似于集群文档中的示例 http nodejs org docs v0 6 0 api cluster html http nodejs org docs v0 6 0 api cluster html 以机智 var
  • 检测 macOS 上的用户活动

    我使用函数 IOPMSchedulePowerEvent 来安排睡眠或唤醒事件 并使用 IORegisterForSystemPower 注册我的守护程序以接收电源状态更改 一切正常 当系统进入睡眠状态并稍后在预定时间醒来时 我的守护进程会
  • 如何添加新的 xib 文件

    我必须开发一个具有多个屏幕的应用程序 我已经自动生成了 xib 文件 但对于我的另一个屏幕 我需要另一个 xib 文件 如何创建另一个 xib 文件 假设 XCode 4 在 文件 gt 新建文件 菜单对话框中 有一个名为 用户界面 的小节
  • JSF 组件中立即=true VS 立即=false

    我正在阅读 Core JavaServer Faces 并且正在研究事件处理 它表示 如果某个组件 比如说按钮 的immediate true 那么当我们单击该按钮时 JSF 生命周期的流程验证和调用应用程序面将提前完成 这是什么意思 任何
  • bash:睡眠进程没有被杀死[重复]

    这个问题在这里已经有答案了 我写了一个简单的 bash 脚本 它除了休眠之外什么也不做 bin bash echo Sleeping sleep 180s 运行脚本后 我看到系统上正在运行两个进程 user 22880 0 0 0 0 12
  • 是否可以通过在页面上获取三个点来校正页面尺寸?

    我正在研究纠正页面 图像 的宽度 高度和角度的逻辑 点r1 r2 r3在正确图像上 点d1 d2 d3是当前图像上的对应点 我尝试了多种方法并最终解决了这个问题 public System Drawing Bitmap CorrectFil
  • Angular.js 内存泄漏,我什么时候应该开始担心

    所以我有一个相当大的应用程序构建在角度上 有很多嵌套状态 很多指令 数据表和东西 我们最近决定切换到完整的单页 而不是只有几个小的单一应用程序部分 比如文章 人员 仪表板以前都是一个小的单页应用程序 所以我开始更多地处理性能 在 Chrom
  • Android 中的模式锁定

    我想在我的应用程序中实现模式锁定 以便用户必须在使用应用程序之前绘制模式 谁能建议我该怎么做 参考这个链接 http haibison github io android lockpattern 我测试了它 这是一个非常好的例子
  • Python-将数据拆分为csv文件中的列

    我的 csv 文件中有数据 看起来像这样导入的 import csv with open Half life csv r as f data list csv reader f 数据将如下所示打印出行 例如data 0 10 2 2 等等
  • Gnuplot 中复数参数的 Bessel J 函数

    我在用gnuplot questions tagged gnuplot用于绘制我的大部分数据和函数 现在 我想绘制带有复数参数的第零类和第一类 Bessel J 函数 功能besj0 and besj1在 gnuplot 中实现 但是 根据
  • 使用 std::deque::iterator (在 C++ STL 中)搜索和删除某些元素

    我在调用以下代码时遇到问题 include
  • 如何剪辑具有平滑边缘的 BackdropFilter?

    我想申请一个背景滤镜在 Flutter 中的图像上 因此 我使用以下方法来应用过滤器 如颤振文档 https api flutter dev flutter widgets BackdropFilter class html import
  • WPF如何优化布局/渲染周期?

    WPF 如何在高度不稳定的应用程序中优化布局 渲染周期 例如 假设我快速连续两次使自定义控件无效 它会渲染两次吗 当数据 属性更新速率快于主渲染速率时是否存在性能问题 根据我的经验 我可以说不 如果速度足够快 它不会渲染两次 我不是 100