powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / [Silverlight] Создание своей темы и её применение
3 сообщений из 3, страница 1 из 1
[Silverlight] Создание своей темы и её применение
    #37530703
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли мануалы/туториалы, где был бы описан наиболее общий подход создания своей темы Silverlight и ее применения в приложении.

Сама по себе тема - это некий ResourceDictionary (обычно generic.xaml), который "содержит в себе ссылки" на стили контролов, внешний вид которых требуется поменять.
И допустим, у нас есть приложение и библиотека с темой. Как правильно указать приложению взять generic.xaml из библиотеки?
Референсы прописаны. Гуугл, что странно, молчит.
...
Рейтинг: 0 / 0
[Silverlight] Создание своей темы и её применение
    #37531404
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,

Проблема решена.

Имеется 2 проекта: приложение и библиотека с темой.
В библиотеке определен ResourceDictionary generic.xaml (кстати, название не важно).
Можно сделать следующим образом:
Тут же, в библиотеке сделать класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    public class MyTheme {
        public ResourceDictionary Dictionary { get; set; }

        public MyTheme() {
            string content;

            using (StreamReader sr = new StreamReader(
                Application.GetResourceStream(new Uri("/TelerikTheme;component/Styles/Generic.xaml", UriKind.Relative)).Stream)) {
                content = sr.ReadToEnd();
                sr.Close();
            }

            this.Dictionary = XamlReader.Load(content) as ResourceDictionary;
        }
    }

Затем в приложении использовать:
Код: plaintext
1.
            Application.Current.Resources.MergedDictionaries.Add(new MyTheme().Dictionary);

Всё, тема применена.

Что интересно, можно менять темы на лету:
Код: plaintext
1.
Application.Current.Resources.MergedDictionaries.clear();
Application.Current.Resources.MergedDictionaries.Add(new AnotherTheme().Dictionary);

По материалам этой заметки .
...
Рейтинг: 0 / 0
[Silverlight] Создание своей темы и её применение
    #37531587
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,

Применил тестовую тему к существующему апп, возникли проблемы с типом проекта Class Library. Поместил тему в проект Silverlight Application, заработало.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / [Silverlight] Создание своей темы и её применение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]