WPF вялый рендеринг / анимация? - PullRequest
4 голосов
/ 06 декабря 2009

Я пытался анимировать около 1000 строк, которые все добавляются в Canvas, и это очень медленно, так как анимация вообще невозможна. Сначала я подумал, что это, вероятно, из-за всех расчетов, но потом я попробовал очень простой эксперимент. Я сгенерировал около 1000 случайных линий и попытался переместить их в новые случайные координаты с помощью PointAnimations. Я в основном запускал эту программу на каждой комбинации ОС / аппаратного обеспечения, которую я мог найти, и я не могу получить даже более 4 кадров в секунду.

Источник (и немного больше информации) можно найти по адресу http://ali.shiravi.com/index.php/wpf-sluggish-rendering-performance/

Кто-нибудь имеет какие-либо решения для этого? Неужели это слишком много, чтобы спросить у WPF?

1 Ответ

2 голосов
/ 07 декабря 2009

Вот как я справляюсь с такой ситуацией. Не пытайтесь переместить видимые линии по отдельности, просто перекрасьте всю коллекцию, но нарисуйте ее в растровое изображение , а затем перенесите ее в видимое окно.

Если перерисовать 1000 строк непосредственно в видимом окне, это может занять 10-100 мс, и вы, вероятно, увидите мигание. Но если вы рисуете в растровое изображение памяти, это, вероятно, займет примерно столько же времени, но не будет заметно мигать, потому что перенос блоков на экран происходит очень быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...