0

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

4

1 回答 1

1

看起来现在它是一个已知的错误:)

于 2009-11-02T14:12:27.527 回答