В ASP.NET 2.0 появилась новая функция Theme, которая упрощает оформление веб-сайта.
Реализация темы включает в себя: CSS, Skin, MasterPage.
CSS используется для управления внешним видом всех HTML-тегов.
Скин используется для управления внешним видом всех настроек сервера ASP.NET, а его стиль CSS можно определить с помощью атрибута cssClass.
MasterPage — это шаблон страницы *.aspx, но он не определен в теме.
-------------------------------------------------- ----------------------------------
·Пример создания темы:
1. Создайте каталог App_Themes в веб-проекте. Это предопределенный каталог, и ASP.NET 2.0 автоматически распознает тему в своем каталоге.
2. Создайте в каталоге App_Themes два подкаталога: OrangeTheme и BlueTheme.
3. Добавьте файлы оформления, например Control.Skin, в каждый подкаталог App_Themes. ASP.NET 2.0 автоматически анализирует каждый файл скина, и именование здесь должно быть удобным для классификации во время разработки.
4. Вы также можете добавить файлы CSS в каждый подкаталог App_Themes. ASP.NET 2.0 также автоматически добавит каждый файл CSS на каждую страницу, использующую этот стиль.
·Определение содержимого страницы и стиля темы
1. Определение страницы default.aspx выглядит следующим образом:
<%@ Page Theme="OrangeTheme" %>
<html>
<head runat="сервер">
<title>Оранжевая страница</title>
</голова>
<тело>
<form id="form1" runat="server">
Введите свое имя:<br />
<asp:TextBox ID="txtName" Runat="Сервер" />
<br /><br />
<asp:Button ID="btnSubmit" Text="Отправить имя" Runat="Сервер"/>
</форма>
</тело>
</html>
2. Определите следующее в файле Control.Skin на домашней странице OrangeTheme:
Примечание. Можно указать только атрибуты внешнего вида, а такие атрибуты, как AutoPastback, указать нельзя.
Безымянный скин по умолчанию будет определять скин для всех типов текстовых полей.
<asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
<asp:Button BackColor="Orange" ForeColor="DarkGreen" Font-Bold="True" Runat="Server" />
Наличие именованного SkinID будет определять внешний вид указанного типа TextBox.
<asp:TextBox SkinID="Title" BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
·Использовать тему на странице
1. Добавьте Theme="Default" вверху файла Aspx <%@ Page %> "атрибут. Таким образом, он может использовать тему по умолчанию.
2. Если вы хотите применить определенную тему ко всему веб-сайту, вам необходимо определить ее в Web.Config.
<конфигурация>
<система.веб>
<pages theme="OrangeTheme" />
</система.веб>
</configuration>
Такое определение эквивалентно теме по умолчанию во всех файлах веб-сайта. Тему по-прежнему можно определить для каждой страницы при ее использовании.
Часть Skin будет использовать тему, определенную на странице, а CSS переопределит таблицу стилей CSS на домашней странице по умолчанию.
3. После указания темы все оформления будут использовать те, которые определены в скине. Вы также можете указать SkinID элемента управления, чтобы определить отдельные скины.
4. Если вы хотите определить тему программно, ее необходимо обработать в событии Page_PreInit следующим образом:
void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = Request["ThemeName"];
Если вам нужно программно загрузить файл MasterPage для страницы, вам также необходимо определить его здесь.
this.MasterPageFile = Request["MasterPageFile"];
}
Понимание этих технологий сделает веб-сайт более универсальным.