Практическое руководство. Определение тем страницы ASP.NET
Обновлен: Ноябрь 2007
В Visual Web Developer можно определить темы страницы, которые затем можно применять к одной или нескольким страницам приложения. Кроме того, можно создать темы на уровне компьютера, которые будут впоследствии использоваться в нескольких приложениях на сервере.
Темы состоят из нескольких файлов поддержки, включая таблицы стилей для отображения страницы, обложки элементов управления для определения внешнего вида серверных элементов управления, а также другие вспомогательные изображения или файлы, составляющие тему. Содержимое темы остается неизменным вне зависимости от того, определена ли тема как тема страницы, или как глобальная тема.
Темы можно применять с помощью либо атрибута Theme or StyleSheetTheme директивы @ Page, либо путем настройки элемента Элемент pages (схема параметров ASP.NET) в файле конфигурации приложения. Visual Web Developer отображает только визуальное представление тем, примененных с помощью атрибута StyleSheetTheme.
Создание темы страницы
В обозревателе решений щелкните правой кнопкой мыши веб-узел, для которого необходимо создать тему страницы, и выберите команду Добавить папку ASP.NET.
Затем выберите пункт Тема.
Если папка App_Themes не существует, Visual Web Developer создаст ее. Затем Visual Web Developer создаст новую папку для тем в качестве дочерней папки для папки App_Themes.
Введите имя новой папки.
Имя данной папки является также именем темы страницы. Например, если создается папка с именем \App_Themes\FirstTheme, используется имя темы FirstTheme.
Добавьте файлы в новую папку, содержащую обложки элемента управления, таблицы стиля и изображения, составляющие тему.
Добавление файла обложки и обложки в тему страницы
В обозревателе решений щелкните правой кнопкой мыши тему и выберите пункт Добавление нового элемента.
В диалоговом окне Добавление нового элемента выберите пункт Файл обложки.
В поле Имя введите имя файла обложки и выберите команду Добавить.
В соответствии со стандартной конвенцией создается один файл обложки для одного элемента управления, например Button.skin или Calendar.skin. Тем не менее можно создавать столько файлов обложки, сколько необходимо.
В файле обложки следует добавить стандартное определение элемента управления с помощью декларативного синтаксиса, но при этом включить только те свойства, которые необходимо задать для темы. Определение элемента управления должно включать атрибут runat="server" и не должно содержать атрибут ID="".
В следующем примере кода демонстрируются обложки элемента управления по умолчанию для элемента управления Button, определяющие цвет и шрифт для всех элементов управления Button в теме.
<asp:Button runat="server" BackColor="Red" ForeColor="White" Font-Name="Arial" Font-Size="9px" />
Данная обложка элемента управления Button не содержит атрибут skinID. Обложка будет применяться ко всем элементам управления Button в приложении, для которого используется тема, не указывающим атрибут skinID.
Примечание. Проще всего создать обложку элемента управления путем добавления элемента управления на страницу и настройки желаемого внешнего вида. Например, можно добавить элемент управления Calendar на страницу и задать заголовок дня недели, выбранной даты, а также другие свойства. Далее можно скопировать определение элемента управления со страницы в файл обложки, но перед этим следует удалить атрибут ID.
Повторите шаги 2 и 3 для создания каждого файла обложки элемента управления.
Примечание. Можно определить только одну обложку по умолчанию для одного элемента управления. Рекомендуется использовать атрибут SkinID в объявлении обложки элемента управления, чтобы создать именованные обложки для элементов управления того же типа.
Добавление файла таблицы каскадных стилей в тему страницы
В обозревателе решений щелкните правой кнопкой мыши тему и выберите пункт Добавление нового элемента.
В диалоговом окне Добавление нового элемента выберите пункт Таблица стилей.
В поле Имя введите имя CSS-файла и выберите команду Добавить.
При применении темы к странице ASP.NET добавляет ссылку на таблицу стилей в ведущий элемент страницы. Дополнительные сведения см. в разделе Практическое руководство. Применение тем ASP.NET.
Создание глобальных тем
Глобальные темы применяются ко всем веб-узлам на сервере. Расположение, где будет создана папка для глобальных тем, выбирается в зависимости от того, запущен ли веб-узел с использованием служб IIS, или тестируется с помощью сервера разработки ASP.NET.
Примечание. |
---|
При работе с веб-узлом на основе файловой системы Visual Web Developer по умолчанию запускает веб-узел для тестирования путем запуска сервера разработки ASP.NET. Для других типов веб-узлов Visual Web Developer запускает страницы для тестирования в службе IIS. |
Создание глобальной темы
Создайте папку Themes, используя для сохранения следующий путь.
%windows%\Microsoft.NET\Framework\version\ASP.NETClientFiles\Themes
Примечание. Именем папки для глобальных тем является Themes, а не App_Themes, как для тем страниц.
Следует создать подпапку для папки Themes, в которой будут содержаться файлы глобальной темы.
Имя данной подпапки является также именем темы. Например, если создается папка с именем \Themes\FirstTheme, используется имя темы FirstTheme.
Добавьте файлы в новую папку, содержащую обложки элемента управления, таблицы стиля и изображения, составляющих глобальную тему.
Примечание. При определении глобальной темы нельзя непосредственно добавлять в нее файлы обложки и таблицы стилей с помощью Visual Web Developer. Гораздо проще определить и протестировать тему как тему страницы, а затем скопировать ее в папку на веб-узле, используемую для хранения глобальных тем.
Если веб-узел является веб-узлом на основе файловой системы, проверка которого выполняется с помощью сервера разработки ASP.NET, можно приступить к тестированию темы.
Если веб-узел тестируется с помощью локального веб-узла IIS, следует открыть командную строку и запустить aspnet_regiis -c для установки темы на сервере с запущенными службами IIS.
Если тема тестируется на удаленном веб-узле или на веб-узле FTP, следует вручную создать папку «Темы», используя следующий путь.
IISRootWeb\aspnet_client\system_web\version\Themes