Мое приложение загружает кучу одного и того же пользовательского элемента управления в ScrollPanel
. Проблема в том, что это очень медленно.Ошибка производительности при загрузке множества пользовательских элементов управления
Профилировщик показывает, что метод Application.LoadComponent()
, который внутренне определяется кодом конструктора моего пользовательского элемента управления, является узким местом. Документация по этому методу говорит, что этот метод загружает файлы XAML.
Вопрос в том, как я могу использовать BAML вместо XAML? Как я могу добиться того, что XAML для моего пользовательского элемента управления не должен повторяться снова и снова при создании из него новых экземпляров? Есть ли другой способ ускорить загрузку моих пользовательских элементов управления?
страницы MSDN (http://msdn.microsoft.com/de-de/library/system.windows.application.loadcomponent.aspx) состояний явно, что LoadComponent загружает XAML, а не BAML, вот в чем проблема. Поскольку мой UserControl представляет собой состав нескольких других элементов управления, пользовательский элемент управления не будет правильным выбором здесь. – codymanix
Вы хотите использовать виртуализацию пользовательского интерфейса, как было предложено, в котором будут отображаться только элементы на экране. Использование BAML не улучшит вашу производительность. BAML - это просто скомпилированная версия XAML. – kevindaub
Можете ли вы перейти на «Вы можете попробовать переписать свои UserControls в пользовательские элементы управления»? Я понимаю разницу в том, что касается наследования и композиции, но я не понимаю, почему существует такая драматическая разница в производительности. – Trinition