如何在同一個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事件?否則,爲什麼使用這個控件,如果我不能使用動畫?