2009-09-19 64 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 :)