小编Evo*_*oul的帖子

我的 GUI 的一部分很慢

我的 GUI 遇到了问题。我的 GUI 中有多个部分。第一个是用于图像(从 500x500 到 3000x3000,它必须每秒更新 4 次) 第二个是主菜单 第三个是带有图像选项的按钮。我不会一次显示所有这些,而是​​滚动浏览几个菜单,只渲染可见的那些。(选项的一个例子是图像的像素大小)我在一个 800x800px 大的 Viewbox 中显示图像。我用Stretch="{Binding Path=StretchMode}" 我得到的图像是某种流来拉伸盒子内的图像。我每秒得到多个图像。

现在,当我显示图像时,第一个 GUI 部分工作正常(无论图像大小如何),但其他部分有时会出现严重的掉帧。我会举一些例子:

示例 1:

图像大小为 500x500 像素。我可以在没有 framedrop 的情况下工作,并且整个 gui 更新正确。

示例 2:

图像大小为 1500x1500 像素。我可以在没有 Framedrop 的情况下工作,并且整个 gui 更新正确。

示例 3:

图像大小为 2500x2500 像素。图像更新速度很快,但 GUI 的其余部分的帧数从 60 fps 下降到 fps,有时甚至下降到 1 fps。

我对这个问题的想法是:

  1. 硬件已达到极限。但是使用 Visual Studios 查看 Taskmanager 和 CPU/RAM 分析表明它没问题。
  2. 为 GUI 渲染太多了,因为 3000x3000 很大而且每秒 4 次也不慢。经过加载(我从硬盘驱动器加载它们)3000x3000 图像(相同数据类型)的测试后,它运行迅速且没有问题。
  3. 一次对 GUI 进行太多更改。我尝试了只有 5 个更新的软件。还是一样的问题。
  4. 未发生 Microsoft Prism 事件。这也不是因为它位于控制器内部,并且在发生更改时会引发更改。(我有一个写入日志文件的记录器,它引发的 Change …

c# wpf prism

5
推荐指数
1
解决办法
208
查看次数

标签 统计

c# ×1

prism ×1

wpf ×1