Возможно некоторые друзья не очень разбираются в темах и скинах. Давайте сначала представим темы и скины.
1. Введение:
Просто посмотрите на названия «Темы» и «Скины», и вы поймете, для чего они используются. Теперь давайте поговорим о том, для чего они используются (как вы можете еще сказать, ~_~), когда вы их все знаете? Темы. Управление стилями страниц без изменения кода и файлов страниц.
Файлы тем размещаются отдельно в папке App_Themes и полностью отделены от вашей программы.
2. Как использовать темы и скины:
Давайте сначала рассмотрим очень простой пример:
код файла App_Themesdefault1.skin:
<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
default.aspx: Код файла:
<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<head id="Head1" runat="server">
<title>Страница с примененным примером темы</title>
</голова>
<тело>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" /><br />
</форма>
</тело>
</html>
Вы можете видеть, что мы не написали никакого кода для управления стилем в файле default.aspx, но когда мы его запустим, мы обнаружим, что слова на метке выделены жирным красным шрифтом. Это самый простой пример темы.
Папка App_Themes:
Папка App_Themes находится в корневом каталоге программы. Подпапка может содержать несколько файлов .skin и .css. На рисунке ниже созданы две темы с именами default и default2:
Использовать темы
1. Примените тему к странице:
Если вы хотите применить тему к определенной странице, измените <%@ Page Theme="..." %> непосредственно в файле aspx. Например, если вы хотите применить тему default2 к этой странице, установите <%. @ Page Theme="default2" %> OK
2. Примените одну и ту же тему ко всем страницам:
Если вы хотите использовать одну и ту же тему на всех страницах, добавьте предложение <pages theme="..."/> под узлом <system.web> в web.config.
3. Разрешите элементу управления не применять тему:
В первом примере мы увидели, что стили двух меток изменились, а это означает, что стиль в файле .skin подействовал на все метки на странице. Но иногда нам нужно, чтобы определенный Label не применял стиль в .skin. В этом случае вам нужно всего лишь установить для свойства EnableTheming Label значение false.
Возможно, вы также хотите, чтобы разные метки отображали разные стили. Вам нужно только установить атрибут SkinID метки. См. пример ниже:
App_Themesdefault1.skin
<asp:label runat="server" font-bold="true" forecolor="Red" />
<asp:label runat="server" SkinID="Blue" font-bold="true" forecolor="blue" />
deafult.aspx
<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<head id="Head1" runat="server">
<title>Страница с примененным примером темы</title>
</голова>
<тело>
<form id="form1" runat="server">
<asp:Label ID="Label2" runat="server" Text="Hello 2" SkinID="Blue" /><br />
<asp:Label ID="Label3" runat="server" Text="Hello 3" /><br />
</форма>
</тело>
</html>
После запуска вы обнаружите, что стили отображения двух меток различны.
4. Другие методы:
Как упоминалось ранее, использование <%@ Page Theme="..." %> в заголовке файла aspx для использования темы и использование этого метода для применения стиля в теме перезапишет стиль атрибута элемента управления, который вы написали в aspx. например:
App_Themesdefault1.skin
<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
default.aspx
<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http ://www.w3.org/1999/xhtml ">
<head id="Head1" runat="server">
</голова>
<тело>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" ForeColor="blue" />
</форма>
</тело>
</html>
В результате операции основной цвет всех меток стал красным.
Использование <%@ Page StyleSheetTheme="..." %> для применения темы не приведет к перезаписыванию атрибута стиля, который вы написали в файле aspx:
порядок, в котором элемент управления применяет атрибут стиля, следующий:
а. Стиль, на который ссылается StyleSheetTheme.
б. Свойства элемента управления, заданные кодом (переопределить StyleSheetTheme).
c. Стиль, на который ссылается тема Theme (охватывающий первые 2
темы), содержит CSS:
Файлы .css также можно использовать в темах. Когда вы помещаете файл .css в каталог темы, ваш .css автоматически применяется к странице, использующей эту тему.
3. Фоновый код может легко изменить внешний вид веб-сайта. .
То, что я упомянул выше, — это применение тем в файлах aspx или web.config. Однако очевидно, что использовать описанный выше метод для изменения скинов на веб-сайте, таком как блог, где у каждого пользователя свой скин, явно неудобно.
Ниже будет показано, как динамически ссылаться на тему в фоновом коде для решения описанной выше ситуации. Тема должна применяться в самый ранний момент, когда страница запрашивается, поэтому мы должны написать код в событии Page_PreInit. Код очень прост. , всего одно предложение:
Page.Theme = "...";
Здесь нам нужно только прочитать из базы данных разные имена тем, установленные каждым пользователем, чтобы легко понять, что у каждого пользователя свой скин.
------------------------------------------
Вышеизложенное является личным мнением и опытом. Если что-то не так, пожалуйста, дайте мне совет. Спасибо!