Как организовать файлы ресурса ресурса (стиль, кисть) и т.д. В приложении?

Каков наилучший способ организовать файлы ресурсов в приложении? В настоящее время в моем приложении мои ресурсы добавляются в проект ResourceLib, который имеет эту структуру:

Цвет [папка]

  • ColorTheme1.xaml
  • ColorTheme2.xaml
  • ColorTheme2.xaml , , .

StyleResource [Папка]

  • Button.xaml
  • ToggleButton.xaml
  • TextBox.xaml
  • ListBox.xaml
  • Treeview.xaml , , , .

HeaderStyle [папка]

  • HeaderStyle1.xaml
  • HeaderStyle2.xaml , , , и т.д.

Этот список будет продолжать расти по мере продвижения дня.

В App.xaml я ссылаюсь на эту библиотеку и объединяю эти словарные файлы для однократной инициализации. DynamicResource используется для поддержки объекта темы.

Будет ли какое-либо влияние на производительность, если продолжить эту структуру?. Есть ли какое-либо преимущество или влияние на производительность, если я поместил все эти xaml в одно имя ресурса (Style.xaml)?

Каковы последствия производительности Style.xaml с 5000 строк по сравнению с разделом на 10 разных xaml файлов?

Наконец, что является лучшим или принятым методом?

Ответ 1

Компания, над которой я работаю, много работает в WPF и Silverlight. Я разработал организационную структуру, которую мы теперь используем для всех проектов. Эта структура и запись можно найти здесь:

http://projekt202.com/blog/2010/xaml-organization/

Ответ 2

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

Сказав, что это DynamicResource - это голодная операция с производительностью, возможно, вам понадобится Freeze кисти и изображения, где это возможно. Добавить: xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"

<SolidColorBrush x:Key="HeaderBrush" Color="Black" PresentationOptions:Freeze="True"/>