Поделиться через


Стили

Обновлен: Ноябрь 2007

Каждый элемент управления ASP.NET для мобильных устройств предоставляет свойства стиля, которые можно использовать для настройки способа визуализации элемента управления. Для удобства можно сгруппировать стили, чтобы обеспечить согласованное применение стилей для различных элементов страницы. Используйте элемент управления StyleSheet или элемент Style для обращения к свойствам, относящимся к определенным возможностям элемента управления и устройства.

6854a8as.alert_note(ru-ru,VS.90).gifПримечание.

Учет параметров свойств стиля не гарантируется. Если целевое устройство не поддерживает определенный стиль, ASP.NET игнорирует этот стиль или заменяет его другим.

Наследование стиля

Если свойства стиля явно не указаны в элементе управления (либо прямо, либо косвенно с помощью ссылки на стиль), элемент управления наследует свойства стиля от контейнера. Большинство свойств стиля имеют по умолчанию значение NULL или перечислимое значение NotSet. Это позволяет с легкостью отличать свойства стиля, которые были установлены явно, от тех, которые не были установлены.

Явное объявление стилей

Существует два способа явного объявления стиля для элемента управления. Одним способом является установка свойства стиля. Например, предположим, что создается форма, и к ней добавляется элемент управления Label. (При этом меткой является дочерний элемент управления формы.) Затем при установке значения "Arial" для свойства Font-Name метки метка использует шрифт Arial.

Другим способом явной установки стиля для дочернего элемента управления является задание свойства StyleReference элемента управления.

Установка стилей с использованием элемента управления DeviceSpecific

Можно также установить свойства стиля через элемент управления DeviceSpecific. В следующем примере показана метка, которая отображается курсивом для большинства устройств и полужирным шрифтом при отображении на настольном устройстве:

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" %>
<script language="C#" runat="server">
// A custom method to determine if the page 
// is displayed on a mobile device
public bool IsDesktop(System.Web.Mobile.MobileCapabilities 
    capabilities, String argument)
{
    return !capabilities.IsMobileDevice;
}
</script>
<Mobile:StyleSheet runat="server">
  <Style Name="ListStyle" Font-Italic="true">
    <DeviceSpecific>
      <Choice Filter="IsDesktop" Font-Italic="false" 
        Font-Bold="true" />
    </DeviceSpecific>
  </Style>
</Mobile:StyleSheet>
<Mobile:Form runat=server>
  <Mobile:Label id="list1" runat=server StyleReference="ListStyle">
    Here is some text
  </Mobile:Label>
</Mobile:Form>

Алгоритм поиска для указанного стиля

При указании стиля через свойство StyleReference ASP.NET выполняет определенную последовательность проверок для определения применяемого стиля. Для дочернего элемента управления (элемента управления внутри родительского контейнерного элемента управления) правила определения характеристик дочернего элемента описаны в следующем списке с использованием атрибута Font-Size в качестве примера:

  1. Если для дочернего элемента управления явно установлен атрибут Font-Size, элемент управления использует этот параметр.

  2. Напротив, если установлено свойство StyleReference дочернего элемента управления (например myChild.StyleReference = someStyle), элемент управления использует значение атрибута Font-Size из указанного элемента Style (например someStyle). Дочерний элемент управления обращается к значению следующим образом:

    1. Дочерний элемент ищет указанный стиль в таблице стиля текущего экземпляра MobilePage.

    2. Если дочерний элемент управления не находит этот стиль в таблице стилей страницы, он обращается к системной таблице стилей по умолчанию.

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

  3. Если стиль не доступен как прямо, так и косвенно, свойство StyleReference не устанавливается и дочерний элемент управления получает значение атрибута Font-Size путем рекурсивного применения этой процедуры к родительскому элементу управления.

  4. Если рекурсия достигает верхней позиции иерархии элементов управления и не находит явного значения для атрибута Font-Size, элемент управления использует размер шрифта по умолчанию.

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

Исключения из алгоритма поиска

Существует два исключения из алгоритма поиска:

  • Цвет фона не получает значение от родительского объекта. (Это согласуется с поведением каскадных таблиц стилей.)

  • Элементы управления DeviceSpecific не наследуют значения от родительского элемента управления. Элемент управленияDeviceSpecific обычно явно создается для конкретного элемента управления или типа элемента управления.

Таблицы стилей

Элементы управления ASP.NET для мобильных устройств предоставляют таблицу стилей по умолчанию, в которой установлено ограниченное число стилей. Дополнительные сведения см. в разделе StyleSheet. Можно легко переопределить значения этих стилей по умолчанию для применения собственного стиля. Любое число объявлений элемента <Style> может храниться в одной таблице стилей. Каждый элемент <Style> идентифицируется посредством уникального свойства Name. Можно установить свойство StyleReference другого элемента управления для свойства Name, таким образам создав ссылку на его стиль. Можно также воспользоваться этим методом для создания ссылки на стиль из другого стиля.

Внешние таблицы стилей

Существует возможность определения внешней таблицы стилей, которую можно использовать для различных элементов управления. Это рекомендуется, если необходимо использовать одни и те же стили на различных страницах. Для создания внешней таблицы стилей создайте пользовательский элемент управления в ASCX-файле и поместите в него отдельный элемент управления StyleSheet с набором стилей. Затем для создания ссылки на этот файл поместите элемент управления StyleSheet на мобильную страницу и установите для свойства ReferencePath относительный URL-адрес пользовательского элемента управления.

Реализация внешней таблицы стилей

Реализация внешней таблицы стилей включает три шага:

  1. Запишите пользовательский элемент управления Microsoft ASP.NET для мобильных устройств в ASCX-файл.

  2. Поместите отдельную таблицу стилей в ASCX-файл, добавив необходимые элементы <Style>.

  3. Объявите таблицу стилей и установите для свойства ReferencePath имя ASCX-файла пользовательского элемента управления для каждой страницы мобильного подключения, если необходимо использовать внешнюю таблицу стилей.

Во время выполнения все стили, объявленные во внешней таблице стилей, становятся доступными в платформе веб-страниц ASP.NET для таблицы стилей на странице мобильного подключения. Дополнительные сведения о пользовательских элементах управления см. в разделе Пользовательские элементы управления.

Характеристики объектов стиля и класса стиля

Объект Style не является истинным элементом управления и не наследует от базового класса MobileControl. На странице он может быть объявлен только в элементе управления StyleSheet через использование элемента <Style>.

Базовый класс Style содержит те характеристики стиля, которые являются общими для всех элементов управления для мобильных устройств. Классы, наследующие от класса Style, содержат дополнительные характеристики стиля, специфичные для соответствующего элемента управления.

Каждый элемент MobileControl внутренне содержит объект Style. Однако этот объект Style не предоставляется через общие члены. Вместо этого для каждого свойства стиля элемент MobileControl имеет общедоступное свойство для внутренней ссылки на закрытый вложенный стиль. Поэтому MobileControl непосредственно предоставляет свойства стиля, например Font, ForeColor и Wrapping.

Организация стилей

Можно организовать стили в элемент управления StyleSheet. В таблице стилей можно объявить любое количество объектов стиля. Стили объявляются таким же способом, как и любой элемент управления, за тем исключением, что атрибут runat=server не требуется. Дополнительные сведения см. в разделе Элемент <Style>.

Стиль может наследовать свои свойства от любого стиля в таблице стилей, если для свойства StyleReference установлено имя родительского стиля. Областью этого является страница мобильного подключения. Это означает, что ссылаться можно только на стили в таблице стилей на той же странице мобильного подключения. Чтобы элемент управления приобрел стили из объекта стиля, установите для свойства StyleReference объекта стиля имя стиля, либо объявив атрибут StyleReference в мобильной веб-странице ASP.NET, либо установив свойство StyleReference программным способом.

См. также

Задачи

Пошаговое руководство. Реализация нового стиля

Основные понятия

Формы

Страницы

Панели

Разбиение на страницы

Другие ресурсы

Создание пользовательских элементов управления для мобильных устройств

Основные возможности разработки и отрисовки элементов управления ASP.NET для мобильных устройств

Руководство разработчика приложений