Как оптимизировать производительность для холста с помощью сотен отдельных пользовательских элементов управления - PullRequest
1 голос
/ 23 декабря 2010

Я пишу приложение, которое потенциально может иметь сотни пользовательских элементов управления на холсте.Все они могут быть перемещены по экрану, и есть линии, соединяющие все по крайней мере с одним другим пользовательским элементом управления.Как только вы достигнете 250 пользовательских элементов управления или около того, производительность начнет заметно снижаться, а частота кадров снизится до 10 или ниже.

Есть ли какие-либо рекомендации или идеи по оптимизации производительности в такой ситуации?Проблема, кажется, заключается в большом количестве элементов управления на холсте в любое время.

Спасибо!

~ Стив

1 Ответ

0 голосов
/ 23 декабря 2010

К сожалению, нет ... это становится проблемой с ресурсами.

Одним из способов решения этой проблемы является использование виртуализации в той или иной форме, как это было сделано с VirtualizingStackPanel .Это сводится к удалению элементов из визуального дерева и удержанию ссылки на нужный элемент, как только он должен стать видимым.Отсутствие принудительного отображения элемента значительно уменьшит необходимые системные ресурсы.Если все элементы должны быть обработаны в определенный момент времени, это становится проблемой ресурсов системы в этот момент.Сохраняйте контроль как можно меньшим и сводите к минимуму такие вещи, как анотмация, так как они облагаются налогом в системе.

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