如何在同一个UserControl上使用动画和MultiScaleImage控件?
我发现,如果您将MultiScaleImage和动画放在同一个UserControl上,您总会得到较高的CPU使用率。 这是一个MultiScaleImage控制错误?下面是一个样本project。 (只是一个网格,MultiScaleImageControl和一个褪色矩形)Silverlight MultiScaleImage控制bug和CPU使用率
为什么CPU使用率高?当播放动画时,UserControl触发LayoutUpdated事件,MultiScaleImage捕获该事件并重绘本身。所以,如果MaxFrameRate = 60(默认值),然后MultiScaleImage每一秒重绘自身〜60倍(MultiScaleImage.LayoutUpdated被炒鱿鱼〜60倍),导致CPU使用率很高:
- 〜20%的CPU,如果MaxFrameRate = 10
- 〜40%的CPU,如果MaxFrameRate = 30
- 〜85%的CPU,如果MaxFrameRate = 60(默认)
不应该MultiScaleImage重绘itsef(或重新计算什么CPU密集型)只在SizeChanged事件?否则,为什么使用这个控件,如果我不能使用动画?