Увеличение производительности элементов управления WPF при загрузке ресурсов.

В настоящее время я активно использую элементы управления DevExpress в приложение. Элементы управления великолепны и значительно ускоряют -время разработки (, и, следовательно, я бы не хотел отказываться от них ), однако у меня есть несколько проблем с их производительностью.

Мое приложение представляет собой приложение Shell/Modules/Views&ViewModels (, оно следует многим шаблонам проектирования, которые вы найдете в Prism ).

Когда представление загружается впервые, для отображения (на некоторых из моих пользовательских ПК с медленными машинами требуется очень много времени, мы говорим о 5+ секундах просто зависания ). Время, которое это занимает, по-видимому, зависит от использования элементов управления DX (, сколько там есть элементов, которые раньше не были замечены приложением ).

Когда вы уничтожаете вид и снова -открываете его, он открывается менее чем за секунду. ViewModel в моих тестовых примерах/профилях производительности был создан для повторного -создания каждый раз -, поэтому в моем коде нет общего состояния между вызовами представления (нет одноэлементных внедренных объектов ).

После небольшого обсуждения и исследований я, кажется, сузил проблему до -загрузки файлов шаблонов для элементов управления DX. Здесь есть ветка об этом : http://www.devexpress.com/Support/Center/Issues/ViewIssue.aspx?issueid=Q382256 , которая ссылается на: http://www.devexpress.com/Support/Center/p/B201967.aspxи элементы управления DevExpress для времени загрузки WPF . Решение, описанное в этих темах, состоит в том, чтобы либо отобразить индикатор загрузки, либо использовать скрытое окно с элементами управления в нем при запуске -. Ни одна из этих опций не является чем-то, что я хотел бы сделать (, и опция скрытого окна не показала большой производительности, когда я попробовал простой пример,интересно -, что также предполагает, что я мог что-то упустить ).

Что я надеюсь сделать, так это предварительно -загрузить файлы шаблонов, которые, как я знаю, мне понадобятся в фоновом потоке. Есть ли способ сделать это в WPF? (Я думаю, что это больше общая вещь WPF, чем вещь DevExpress -, даже если это то, что нужно реализовать в самих библиотеках DX ).

Есть идеи для меня или ребят из DevExpress?

7
задан Community 23 May 2017 в 11:45
поделиться