2009-12-06 104 views
4

我一直试图围绕1000条线添加到Canvas中进行动画设置,并且对于动画根本不可行的延伸速度非常缓慢。起初我以为这可能是因为所有的计算,但后来我尝试了一个非常简单的实验。 我生成了大约1000条随机线,我尝试使用PointAnimations将它们移动到新的随机坐标。我已经基本上在我能找到的每个操作系统/硬件组合上运行这个程序,而且我甚至不能每秒获得超过4帧。WPF呆滞的渲染/动画性能?

源(以及一些详细信息)可以在http://ali.shiravi.com/index.php/wpf-sluggish-rendering-performance/

找到

有没有人有这个解决方案的任何?这是真的太难从WPF要求?

回答

2

下面是我如何处理这种情况。不要尝试单独移动可见线条,只是重新绘制整个集合,但将其绘制到位图,然后将其块转移到可见窗口。

如果您直接重画1000行到可见窗口,可能需要10-100毫秒,并且您可能会看到闪烁。但是,如果你绘制一个内存位图,它可能需要大致相同的时间,但它不会明显闪烁,因为块传输到屏幕非常快。