|
Как в библиотеке использовать стиль из словаря ресурсов?
|
|||
---|---|---|---|
#18+
Решил сделать библотеку вспомогательных окон: 1. Создал проект библиотека классов, библиотека контролов. 2. Создал в библиотеке класс MessageBox : Window (частичный класс в двух файлах cs и xaml) 3. В этом же решении создал проект - WPF-приложение для тестирования классов библиотеки, настроил ссылки. 4. В окне приложения разместил кнопку - в обработчике клика вызываю MessageBox из моей библиотеки. Всё отработало хорошо, решил стиль окна MessageBox вынести в словарь ресурсов - чтоб использовать повторно код и иметь возможность централизовано менять стиль всех окон. 5. Добавил в проект библиотеки словарь ресурсов xaml. 6. Перенёс в словарь стиль окна MessageBox. Вот так выглядит словарь: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Вот так выглядит MessageBox.xaml: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
В этом файле пытаюсь использовать стиль из словаря - внутри первого тега Window пишу: Код: xml 1. 2. 3. 4. 5. 6.
Но увы здесь - System.Windows.Markup.XamlParseException - Не удается найти ресурс с именем "Window". Конечно если ссылку на словарь ресурсов прописать в App.xaml, то всё сразу обнаруживается и работает, но это не совсем то, что хотелось - как-то неудобно подключать библиотеку, а потом ещё и стили для нее прописывать. Как бы стили сделать встоенными в библиотеку и ссылаться на эти стили из самой библиотеки? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2013, 00:23 |
|
Как в библиотеке использовать стиль из словаря ресурсов?
|
|||
---|---|---|---|
#18+
Hobotanius, 1. В библиотеке создать еще один ResourceDictionary, в него собрать ресурсы из всех имеющихся в библиотеке словарей: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В App.xaml прописать ссылку на этот один общий файл: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
После этого в приложении будут доступны ресурсы из всех словарей, перечисленных в AllStyles.xaml. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2013, 06:11 |
|
Как в библиотеке использовать стиль из словаря ресурсов?
|
|||
---|---|---|---|
#18+
Спасибо за ответ. Значит - на сколько я понял ни какого другого способа нет... Не совсем понятно тогда как будет происходить подключение библиотеки после компиляции - когда исходники не доступны есть только - dll-файл - на какие тогда словари будет ссылаться конечная сборка в App.xaml, если будет только dll? Вообще это странно, что нужно обязательно в App.xaml прописывать ссылку на словарь библиотеки. Получается, что нужно дополнительно хранить информацию для каждой библиотеки об имени словаря ресурсов для неё. Способ который Вы описали понятен, в создани ещё одного точно такого же файла-словаря не вижу смысла - У меня и так для данной библиотеки предполагается только один xaml-файл ресурсов. Вот со стороны приложения там - другое дело - библиотек может быть много поэтому если по каждой ещё и ссылку на словарь прописывать, то объединяющий словарь наверное уместен. Но ведь как то же можно в библиотеке использовать стиль из словаря ресурсов напрямую? Чтобы не приходилось прописывать окольные ссылки. Получается - чтобы в библиотеке применить некоторый стиль к окнам, нужно сначала передать ссылку на этот стиль приложению которое будет использовать библиотеку? Ведь по сути - стиль это поименовонное присвоение некоторым свойствам определённых значений. То есть при создании окна его свойствам просто значение присвоется, тогда вид и поведение окна будет тем что нужно, но если делать это напрямую, то утратится возможность централизовано управлять видом и поведением всех окон данной библиотеки. Как же всё-таки использовать в библиотеке стили таким образом чтобы приложение, которое будет пользоваться библотекой не было обременено необходимостью ссылаться на словари ресурсов подключаемых библиотек? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2013, 23:48 |
|
Как в библиотеке использовать стиль из словаря ресурсов?
|
|||
---|---|---|---|
#18+
HobotaniusКак же всё-таки использовать в библиотеке стили таким образом чтобы приложение, которое будет пользоваться библотекой не было обременено необходимостью ссылаться на словари ресурсов подключаемых библиотек? Советую подумать, как вы используете стили из других ResourceDictionary, находящихся в основной сборке приложения. Выводы расширить до использования стилей из ResourceDictionary подключаемых сборок. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2013, 04:28 |
|
|
start [/forum/topic.php?fid=21&fpage=26&tid=1441243]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 471ms |
0 / 0 |