Здравствуйте, Vladek, Вы писали:
V>Здравствуйте, adanov, Вы писали:
A>>Недоволен низкой производительностью.
A>>Скорее всего делал неправильно:
V>Ага, сегодня услышал такую фразу "Reinvent WPF in the application".
A>>Есть список объектов.
A>>Их аватары отображаются в виде равнобедренных треугольников (Polygon) на канвасе.
A>>Канвас обновляется 30 раз в сек через DispatcherTimer (для 10 объектов).
A>>В TimerCallback пересчитывается положение и направление объектов,
A>>и перезаписываются новые положения точек в Polygon.Points (по три точки на объект).
A>>При кол-ве объектов около 1000, частота снижается до нескольких герц
A>>Есть ли более быстрые варианты отображения множества перерисовываемых аватаров?
V>Воспользоваться стандартными средствами анимации WPF? Зачём заново её изобретать? Больше ничего писать не буду, ибо такой задачи не решал, документация в MSDN, примеры или подсказки можно найти в блогах сообщества WPF Disciples, буде таковое желание.
У меня тоже недавно поднимался вопрос производительности WPF с отрисовкой... Хочу сказать, что значительного ускорения при перерисовке с помощью Animation не наблюдается. А всего-то нужно было анимировать линии объектов.
Вообще даже если нужно, чтобы анимация распространялась только на один объект из множества расположенных на канвасе, то скорость анимации зависит от количества статических объектов