WPF添加DrawingVisual对象过多时,从完成绘制到屏幕显示间隔很长
最近在学习WPF,发现添加DrawingVisual对象过多时,从完成绘制到屏幕显示间隔很长。
比方说,我定义了两个同心圆类:GDICircle和WPFCircle,都有坐标、半径、内外圈颜色。
GDI+的画法是先将圆画在一个相当的bitmap上,再根据坐标贴到屏幕大小的bitmap上,最后OnPaint时贴上屏幕。
WPF的画法是使用DrawingVisual对象,绘制完成后添加到视觉树。
同时画50000个圆,监控起始结束时间,GDI+虽然花费12秒左右,但是一旦结束就立即显示。
WPF完成50000个的绘制和添加到树花费6秒左右,但显示出来还要等6秒,甚至还要久。
这6秒WPF在干什么?有没有办法让它更快?