【发布时间】:2011-07-21 01:38:28
【问题描述】:
如果 WPF 应用程序的屏幕包含大量原始控件,则其呈现会变得缓慢。在这种情况下,除了添加更少的控件和使用更强大的显卡之外,还有哪些推荐的方法来提高 WPF 应用程序的响应能力?
有没有办法以某种方式使用屏幕外缓冲或类似的东西?
【问题讨论】:
-
WPF 中的分层/透明窗口的性能很糟糕。这是 UI 渲染最常见的问题。 blogs.msdn.com/b/dwayneneed/archive/2008/09/08/…有关一般性能优化指南,请参阅:msdn.microsoft.com/en-us/library/aa970683.aspx
-
你能给出一些数字吗?每个窗口的控件数量等。
-
@NVM 实际上,现在每个窗口大约有一千个自定义控件(自定义控件由几个边框、文本块和大约几十个依赖属性组成)。控件的数量可以增加。但是这个数量已经需要一些令人不舒服的秒数才能在初始渲染中可视化。此外,它在放大时不会提供很好的平滑滚动。
-
我发现很难在用户面前同时可视化包含一千个文本框的 UI。无论如何,根据一切的安排方式,您可以使用内置的虚拟化面板之一,也可以编写自己的自定义面板,它只会创建可见的控件。这应该会大大加快速度。
-
@NVM 感谢您指出虚拟化面板的潜在用途。由于元素的特定布局,我不确定它是否适合我的特殊情况,但我会注意这一点。
标签: wpf performance user-interface rendering