2009-09-19 59 views
0

如何在同一个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事件?否则,为什么使用这个控件,如果我不能使用动画?

回答

1

它看起来像现在这是一个已知的bug :)