如何使用数百个单独的自定义用户控件优化画布的性能

时间:2010-12-23 02:07:24

标签: silverlight-4.0

我正在编写一个可能在画布上有数百个自定义用户控件的应用程序。所有这些都可以在屏幕上拖动,并且有一些线路将所有这些线路连接到至少一个其他用户控件。一旦达到250个自定义用户控件,或者性能开始明显下降,帧速率将达到10或更低。

在这种情况下,是否有关于如何优化性能的最佳实践或想法?问题似乎在于任何时候画布上的控件数量都很多。

谢谢!

〜史蒂夫

1 个答案:

答案 0 :(得分:0)

不幸的是没有......它成为系统资源问题。

判断此问题的一种方法是使用VirtualizingStackPanel完成的某种形式的虚拟化。这归结为从可视树中删除项目,并在需要变为可见时保持对所需项目的引用。不强制呈现项目将显着减少所需的系统资源。如果需要在给定时间呈现所有项目,那么它就成为系统资源问题。保持控制尽可能小,并将问题保持在最低限度,因为它们会对系统造成负担。