Lightswitch - Как повторно использовать существующие ресурсы? - PullRequest
3 голосов
/ 24 августа 2011

Я пытаюсь понять, каков наиболее удобный способ настройки внешнего вида моих приложений LightSwitch.

Я создал несколько приложений WPF и Silverlight, и у меня есть общий набор кистей, стилей, раскадровок, изображений и т. Д., Которые хранятся в виде ресурсов в специальной библиотеке классов.У меня нет собственных пользовательских элементов управления - только стили, кисти, шаблоны и т. Д., Которые придают им индивидуальный вид.

Я решил создать свое следующее приложение в LightSwitch и хотел бы сохранить тот же внешний вид,мои существующие приложения WPF и Silverlight.Поэтому я хотел бы повторно использовать мои существующие ресурсы.

Я изучил Extensibility Toolkit и смог получить доступ к некоторым ресурсам, используемым в LS, таким как кисти, но не нашел, где находятся стили и шаблоны.

Вопрос № 1 : Где я могу объединить свои собственные словари ресурсов для подключения своих собственных стилей и шаблонов?Например, если у меня есть неявный стиль для кнопки, где я могу слить ее?

При использовании подхода к набору тем, из того, что я понимаю, нужно сделать следующее, чтобы увидеть изменение, примененное кприложение LightSwitch:
a) Создайте проект темы
b) Удалите расширение, если оно было установлено ранее
C) Перезапустите Visual Studio
d) Переустановите обновленное расширение темы
e) Перезапустите Visual Studio
f) Загрузите решение LightSwitch и запустите его

Я что-то упустил?Обходной путь, который я вижу, заключается в создании обычного проекта Silverlight и использовании моей собственной библиотеки ресурсов.И как только я удовлетворен внешним видом определенного ресурса и хочу увидеть его в LightSwitch, я объединяю его с темой и выполняю болезненный процесс, описанный выше.

Вопрос № 2 : как быстро изменить тему и увидеть ее в действии?

Пожалуйста, чего мне не хватает?Я, вероятно, что-то упускаю, потому что это не может быть таким сложным, так как это так просто в SL и WPF.Все, что я хочу сделать, это объединить мои словари ресурсов где-нибудь в моем приложении LS и запустить их, чтобы увидеть их в действии.Пожалуйста помоги!:)

1 Ответ

1 голос
/ 29 декабря 2011

Для Q1 простого объединения словаря ресурсов недостаточно, вам нужно использовать малоизвестный интерфейс IThemeExtension и украсить класс атрибутом ThemeExtension.Об этом написано не так много, но как только вы поймете неудачное имя (), вероятно, было бы гораздо меньше путаницы, если бы его называли чем-то вроде StyleExtension или ControlStyleExtension, но его название происходит от того факта, чтоэто расширение темы в виде дополнительных стилей элементов управления ), оно довольно простое.

Интерфейс IThemeExtension имеет только один реализуемый метод, GetControlStyleResources, который должен возвращать IEnumerable (Ури).Его цель - предоставить одно или несколько значений URI, каждый из которых указывает на ResourceDictionary (хранящийся в файле XAML), который содержит определения стиля элемента управления.

Текст, выделенный курсивом, цитируется из книги, которую яработа с Тимом Ленгом, которая называется «Разработка Pro Visual Studio LighSwitch 2011», должна выйти в конце февраля.

Если вы загрузите исходный текст для темы Metro, вы увидите, как Microsoft использует эту тему длясделать изменения стиля управления, а также изменения цвета кисти.(http://code.msdn.microsoft.com/LightSwitch-Metro-Theme-b1bfce24)

Для Q2, когда я создаю тему, чтобы проверить ее, я использую следующие шаги.

  1. Создание проекта
  2. Нажмите на ссылку, чтобыVSIX в окне вывода
  3. Следуйте указаниям мастера для установки расширения темы
  4. Откройте проект LS (если это проект, который не использовал тему, вам нужно поставить галочку «Использовать»в этом проекте "флажок в свойствах проекта, и, если тема еще не выбрана, вам необходимо выбрать ее и для проекта).
  5. Запустить проект LS

Дополнительные биты в шаге 4 нужно сделать только для проекта, в котором еще не выбрана ваша тема. После этого последовательность очень проста. Удалять / переустанавливать ваше расширение абсолютно не нужно. Просто убедитесь, чточто вы увеличиваете номер версии (скажем, от 1.0 до 1.0.1 и т. д.) каждый раз, когда хотите протестировать его, и расширение обновит ранее установленную версию.

Надеюсь, все это поможет.

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