如何在同一个 UserControl 上使用动画和 MultiScaleImage 控件?
我发现如果将 MultiScaleImage 和动画放在同一个 UserControl 上,CPU 使用率总是很高。这是 MultiScaleImage 控件的错误吗?这是一个示例项目。(只是一个网格、MultiScaleImageControl 和一个渐变矩形)
为什么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 不应该仅在 SizeChanged 事件上重绘其ef(或重新计算CPU密集型)吗?否则,如果我不能使用动画,为什么还要使用这个控件?