Область применения ресурса WPF: хорошо ли продвигать его в область приложения (app.xaml) для повышения производительности? - PullRequest
4 голосов
/ 04 января 2012

A) Если у меня есть ресурс, который будет использоваться из пользовательского элемента управления, какой из них более эффективен с точки зрения производительности ..?
Чтобы включить его в саму область действия пользовательского элемента управления или обратиться к ресурсу из app.xaml?

B) Теперь у нас есть все сотни стилей, упомянутых в appl.xaml.Стоит ли переместить их в соответствующие пользовательские элементы управления ..?

Ответы [ 3 ]

2 голосов
/ 04 января 2012

A) Если у меня есть ресурс, который будет использоваться из пользовательского элемента управления, какой из них более эффективен?Чтобы включить его в саму область управления пользователя или сослаться на ресурс из app.xaml ..?

Поскольку XAML компилируется в BAML, а затем загружается при запуске, вы не увидите различий.Теперь большинство вещей XAML являются общими (то есть линейная кисть, выпадающий стиль), поэтому лучше не ставить ее непосредственно на элемент управления для повторного использования того же стиля и факторизации

B) Теперь у нас есть всесотни стилей, упомянутых в appl.xaml.Будет ли стоить переместить их в соответствующие пользовательские элементы управления ..?

Неэффективно, так как вы не сможете их повторно использовать.

Если ваш XAML медленный иВы используете MVVM, проверьте, сколько объектов создано.В этом году у меня возникла проблема: я заново создал контекстное меню для каждого элемента и оставил его доступным для всех элементов (в виде дерева), что улучшило время инициализации.

1 голос
/ 04 января 2012

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

Pro Silverlight 4 в C # Мэтью Макдональд


В целом, это зависит от уровня повторного использования ресурсов в сфере применения. Если ресурс широко используется - поместите его в ресурсы приложения. Если вы собираетесь использовать стиль только для одного UserControl и не использовать его в других местах - размещение этого стиля в app.xaml будет чрезмерным. На мой взгляд, даже если ресурс используется только для 2-3 страниц, лучше разместить его на каждой странице.

С точки зрения производительности - я не думаю, что у вас есть такое количество ресурсов, которое может снизить производительность.
Ниже приведены статьи, которые могут помочь вам улучшить время загрузки:

Обновление:
MSDN помогает во многих ситуациях) После прочтения этой статьи вы получите ответы на многие вопросы: Словари ресурсов
Статья, описывающая Resources проблемы с производительностью: Проблема производительности Silverlight XAML и общих ресурсов .

0 голосов
/ 28 мая 2012

Я бы разместил его там, где это наиболее логично.Если это что-то, что используется более чем в одном месте, или даже что-то, что может использоваться более одного раза, поместите это в app.xaml.Если он очень специфичен для страницы / usercontrol / окна, тогда поместите его туда.

...