Каков наилучший способ организовать стили WPF и ResourceDictionaries в большом проекте?

У меня есть большое приложение WPF, которое использует большое количество стилей, кистей и тем. Управлять большим количеством стилей с несколькими разработчиками становится сложно. В настоящее время большинство наших прикладных стилей находятся в одном словаре ресурсов, а тематические кисти - в своем собственном ресурсном словаре.

Проблема заключается в том, что поиск стиля, который мы хотим использовать, затруднен, потому что основной ресурсный словарь стал настолько большим. Любые рекомендации по наилучшему способу реорганизации? Я рассмотрел возможность разбить его на отдельные ресурсные словари для типа управления, для которого предназначен стиль. Например, словарь ButtonStyles.xaml, но я не уверен, что это правильный путь.

Если у кого-то есть предложения по организации их больших ресурсных словарей, я был бы признателен.

Ответ 1

Определенное использование нескольких ресурсных словарей - путь. Возможность объединить ресурсные словари была препятствием для разработчиков Silverlight (до 3,0) и благом для разработчиков WPF с самого начала.

Для проектов среднего размера я настоятельно рекомендую кластеризовать ваши ресурсы в словарях, которые указывают конкретный тип, например. ButtonStyles.xaml и Brushes.xaml и Images.xaml и т.д.

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

Я не пробовал это лично, но мне сказали, что Expression Blend 2 и даже более того, в Blend 3 есть действительно хорошие графические интерфейсы для создания и организации ваших ресурсных словарей и преобразования стилей управления в ресурсы и т.д.