Каков наилучший способ организации стилей WPF и ResourceDictionaries в большом проекте? - PullRequest
11 голосов
/ 14 апреля 2009

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

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

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

1 Ответ

10 голосов
/ 14 апреля 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...