У меня есть приложение Silverlight, в которое я периодически загружаю дополнительные данные и добавляю их на страницу как UserControls. Я загружаю около 25 объектов в одном наборе и создаю один UserControl для каждого объекта.
Это в конечном итоге занимает совсем немного времени! Загрузка 25 объектов занимает 50-150мс исключительно в пользовательском интерфейсе. Это делает мои анимации довольно резкими, что очень нежелательно.
Есть ли способ ускорить загрузку пользовательских элементов управления? Я бы предпочел не добавлять какой-либо слой буферизации, который загружает X элементов в секунду. Я также не предпочел бы предварительно загружать какой-либо большой буфер объектов пользовательского интерфейса, который я бы использовал для зомбифинга / повторного использования в зависимости от объема поступающих данных. Однако в настоящее время я не могу думать о каких-либо других параметрах.
Сами UserControls довольно просты, и я очень удивлен, что они загружаются так медленно. По сути, я просто создаю их (ничего не делая дорого в конструкторе), задаю DataContext и добавляю их на родительский холст.
Это должно быть так медленно? Есть ли что-то очевидное, что я мог бы здесь упустить? Можно ли как-то отделить это от времени анимации? Наверное, нет - пользовательский интерфейс почти наверняка является однопоточным.