Ресурсные словари времени разработки - PullRequest
1 голос
/ 02 ноября 2009

Я создал что-то вроде этого и этого .
По сути, у меня есть dll, которая снабжает меня «стайлером» для моего приложения - он содержит все мои основные стили, а также фабрику для вызова StylerFactory.DefaultStyler.ApplyStyles(this) для приложения - которая объединяет предоставленные ResourceDictionaries с существующими. Таким образом, мне не нужны все основные стили в моих компонентах, а также не требуются явные ссылки на мои файлы sesource-xaml.
Сейчас - пока это работает очень хорошо. Стили (очевидно) не видны во время разработки На мои вопросы:

  1. Был ли такой подход разумным, или было бы лучше развернуть xaml-ресурсы и использовать их в каждом приложении / окне / элементе управления?
  2. Кто-нибудь видит возможность применить мои стили к дисплею VS2008 во время разработки?

1 Ответ

0 голосов
/ 02 ноября 2009

На мой взгляд, это приемлемый подход. Причина в том, что я не видел лучшего метода.

В моих собственных случаях я загружал словари ресурсов во время выполнения , используя код, который я описал здесь , который, как я предполагаю, будет работать и для загрузки ресурсов из других сборок. Недостатком является то, что дизайнер не будет запускать этот код первым, то есть стиль по умолчанию не применяется, что вы испытываете.

Чтобы противодействовать этому, я добавил определение <ResourceDictionary.MergedDictionaries> по умолчанию в каждый из моих <Window.Resources>, которые мне нужно было редактировать во время разработки. Хотя это оказывается немного избыточным, это позволило мне иметь рабочее Окно времени разработки, в то время как правильный MergedDictionary можно загрузить позже во время выполнения. Возможно, вы можете использовать это, чтобы найти лучший метод.

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