Как использовать анимацию и элемент управления MultiScaleImage на одном и том же UserControl?
Я обнаружил, что если вы поместите MultiScaleImage и анимацию на один и тот же UserControl, вы всегда получаете высокую загрузку ЦП. Это ошибка управления MultiScaleImage? Вот пример проекта . ( просто сетка, MultiScaleImageControl и замирающий прямоугольник )
Почему загрузка ЦП высока? Когда воспроизводится анимация, UserControl запускает событие LayoutUpdated, а MultiScaleImage перехватывает это событие и перерисовывает себя. Поэтому, если MaxFrameRate = 60 (значение по умолчанию), то MultiScaleImage каждую секунду перерисовывает себя ~ 60 раз (MultiScaleImage.LayoutUpdated срабатывает ~ 60 раз), вызывая высокую загрузку ЦП:
- ~ 20% ЦП, если MaxFrameRate = 10
- ~ 40% ЦП, если MaxFrameRate = 30
- ~ 85% ЦП, если MaxFrameRate = 60 (по умолчанию)
Разве MultiScaleImage не должен перерисовывать себя (или пересчитывать что-то интенсивное использование процессора) только для события SizeChanged? Иначе зачем использовать этот элемент управления, если я не могу использовать анимацию?