Silverlight MultiScaleImage控制错误和CPU使用率

时间:2009-09-19 15:06:19

标签: silverlight cpu-usage multiscaleimage

如何在同一个UserControl上使用动画和MultiScaleImage控件?
我发现如果你在同一个UserControl上放置一个MultiScaleImage和动画,你总是会得到很高的CPU使用率。 这是一个MultiScaleImage控件错误吗?以下是一个示例project。 (只是一个网格,MultiScaleImageControl和一个渐变矩形

为什么CPU使用率很高?当播放动画时,UserControl会触发LayoutUpdated事件,MultiScaleImage会捕获该事件并重绘自身。因此,如果MaxFrameRate = 60(默认值),则MultiScaleRmage每秒重绘自身~60次(MultiScaleImage.LayoutUpdated被触发~60次)导致CPU使用率过高:

  • ~20%CPU,如果MaxFrameRate = 10
  • ~40%CPU,如果MaxFrameRate = 30
  • ~85%CPU,如果MaxFrameRate = 60(默认值)

不应该只在SizeChanged事件上重新绘制MultiScaleImage(或重新计算CPU密集型的东西)吗?否则,如果我不能使用动画,为什么要使用此控件?

1 个答案:

答案 0 :(得分:1)

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