Автоматическое применение шаблона (темы) в Silverlight 2 (RC0)

Есть ли способ автоматически применить тему / шаблон / стиль ко всем элементам управления targettype, чтобы мне не нужно было указывать Template = ..., Style = ... для всех элементов управления?


person EinarI    schedule 08.10.2008    source источник


Ответы (3)


Я думал, что есть способ сделать это, просто опуская атрибут x: Key, но, похоже, это больше не работает. Основываясь на некоторых поисковых запросах, мне кажется, что вам лучше всего создать собственную библиотеку настраиваемых элементов управления, в которой есть файл themes / generic.xaml, который определяет ваши настраиваемые стили. Затем вы можете использовать свои собственные элементы с правильным стилем (MyButton вместо Button). Либо это, либо придерживайтесь свойства Style.

Пример этого здесь и альтернативного подхода с использованием тем здесь.

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

person Bryant    schedule 08.10.2008

Чтобы настроить тему для всех элементов управления, создайте событие запуска и установите тему в обработчике событий запуска. Эта тема будет применяться ко всем пользовательским элементам управления в этом решении.

//App.xaml

<Application x:Uid="Application_1" x:Class="SampleApp.Home.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml"
             Startup="Application_Startup">

//App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)
        {
            StyleManager.ApplicationTheme = new MetroTheme(); //Set your theme here           
        } 
person Prathibha    schedule 16.02.2012

Эйнарл: Сейчас нет возможности «каскадировать» шаблоны / стили элементов управления в ядре Silverlight 2. То есть вы не можете установить шаблон стиля / элемента управления для TextBox и ожидать, что все TextBox его подберут. Это определенно то, что команда рассматривает в будущих версиях.

person Tim Heuer    schedule 08.10.2008