Читайте также: |
|
Представьте, что вам нужно стандартизировать шрифт и его цвет для всех кнопок страницы. Первым делом опишите объект Style содержащий в себе все необходимые вам свойства. Поместите этот объект как ресурс (например, в секции UserControl.Resources, в которой можно хранить ресурсы, относящиеся к данной странице):
<UserControl.Resources>
<Style x:Key="BigButtonStyle" TargetType="Button">
...
</Style>
</UserControl.Resources>
У стиля, как и у всех ресурсов, имеется имя-ключ, по которому вы можете к нему обращаться. В нашем примере имя ключа – BigButtonStyle. (Обычно принято добавлять к именам стилей окончание «Style»). Кроме того, для любого Silverlight стиля должно быть задано поле TargetType определяющее тип элементов, к которым может применяться данный стиль. В нашем случае стиль создается для форматирования кнопок (Button).
Наш объект Style содержит коллекцию сеттеров (setter) состоящую из 6-ти Setter-объектов (по одному на каждое свойство). Каждый сеттер описывает только одно свойство элемента. Единственным ограничением является то, что сеттер способен изменять только зависимые свойства (dependency properties), и никакие другие. Но, как показывает практика, это не такое уж и большое ограничение, поскольку почти все свойства Silverlight элементов – зависимые свойства. Сеттеры свойств могут влиять на любые зависимые свойства, даже на те, что управляют поведением объекта, а не его внешним видом. К примеру, если вы применяете стиль к текстовому полю, можете выставлять параметры AcceptsReturn и IsReadOnly непосредственно в самом стиле.
Перед вами стиль большой кнопки с белым текстом шрифта Georgia на темном фоне:
<UserControl.Resources>
<Style x:Key="BigButtonStyle" TargetType="Button">
<Setter Property="FontFamily" Value="Georgia" />
<Setter Property="FontSize" Value="40" />
<Setter Property="Foreground" Value="SlateGray" />
<Setter Property="Background" Value="Black" />
<Setter Property="Padding" Value="20" />
<Setter Property="Margin" Value="10" />
</Style>
</UserControl.Resources>
В некоторых случаях вы не сможете задать значение свойства, используя простой формат записи атрибута. Например, простая запись не позволяет создавать неоднородную кисть LinearGradientBursh или ImageBrush. В такой ситуации вы можете применить уже знакомый для XAML прием замещения атрибута каким-либо вложенным элементом. Вот пример:
<Style x:Key="BigButtonStyle" TargetType="Button">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="Blue"></GradientStop>
<GradientStop Color="Yellow" Offset="1"></GradientStop>
</LinearGradientBrush>
</Setter.Value>
</Setter>
...
</Style>
Дата добавления: 2015-08-13; просмотров: 74 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лекция 3. Стили и шаблоны элементов управления WPF. | | | Использование стиля |