Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имеется ли возможность "расшарить" стили WPF? 
V
    Опции темы
nnm2005
Дата 3.7.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



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

Например, есть приложение для пользователей, есть для админов, есть для бухгалтеров. Все эти приложения вместе решают одну проблему, ну и выглядеть должны похоже. Может кто видел статьи/туториалы/мануалы/примеры чего-нибудь подобного?
PM MAIL   Вверх
Partizan
Дата 3.7.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 67



nnm2005, 

Цитата

можно ли сделать стили общими для нескольких приложений, хранить их например в одном проекте, а использовать в нескольких приложениях?


можно...для решения задачи - стиль выносится в отдельный ResourceDictionary, в отдельную сборку.

Цитата

Как тогда к ним обращаться(т.е. при подключении к другому проекту)?


Во всех приложениях, где он нужен - его можно использовать, предварительно поместив соответствующий ResourceDictionary в коллекцию MergedDictionaries. (читать msdn про MergedDictionaries и про pack URI scheme)


Цитата

Можно ли делать такие стили дефолтными для контролов? 


Можно, путём установки свойства стиля TargetType в необходимый тип.

Цитата

Может кто видел статьи/туториалы/мануалы/примеры чего-нибудь подобного? 


Adam Nathan. WPF Unleashed. Читать главу про Styles,Templates, etc.



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
nnm2005
Дата 3.7.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Спасибо, Partizan, буду пробовать.
PM MAIL   Вверх
nnm2005
Дата 3.7.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Ура, в общем все получилось. Создал проект типа Class Library, туда перенес все файлы XAML (resource dictionaries со стилями). Build action у этих xaml'ов поставил Page. Далее в app.xaml в нужном приложении сделал такую секцию:
Код

<ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/WPF.Resources;Component/StyleDictionaries/ButtonsStyleResourceDictionary.xaml"/>
                <ResourceDictionary Source="pack://application:,,,/WPF.Resources;Component/StyleDictionaries/WpfDataGridStyleDictionary.xaml"/>
                <ResourceDictionary Source="pack://application:,,,/WPF.Resources;Component/StyleDictionaries/TabControlStyleDictionary.xaml"/>
            </ResourceDictionary.MergedDictionaries>
 

Вуаля, стили подцепились как будто они были в этом проекте.

Цитата

Adam Nathan. WPF Unleashed. Читать главу про Styles,Templates, etc.


 Более полезной в этой книге оказалась глава про бинарные ресурсы.

Это сообщение отредактировал(а) nnm2005 - 3.7.2009, 16:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.