Главная » Разработка для Windows Phone 7 » Наследование стилей Windows Phone 7

0

Стили могут дополнять или изменять другие стили посредством наследования. Зададим в качестве значения свойства BasedOn (Основан на) нашего Style определенный ранее Style. Вот так выглядит коллекция Resources проекта StyleInheritance:

Проект Silverlight: StyleInheritance Файл: MainPage.xaml (фрагмент)

<phone:PhoneApplicationPage.Resources> <Style x:Key="txtblkStyle"

TargetType="TextBlock"> <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="Margin" Value="12 96" /> <Setter Property="FontSize" Value="48" /> <Setter Property="Foreground"> <Setter.Value>

<LinearGradientBrush>

<GradientStop 0ffset="0" Color="Pink" /> <GradientStop Offset="1" Color="SkyBlue" /> </LinearGradientBrush> </Setter.Value> </Setter> </Style>

<Style x:Key="upperLeftStyle" TargetType="TextBlock"

BasedOn="{StaticResource txtblkStyle}"> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="VerticalAlignment" Value="Top" /> </Style>

<Style x:Key="lowerRightStyle" TargetType="TextBlock"

BasedOn="{StaticResource txtblkStyle}"> <Setter Property="HorizontalAlignment" Value="Right" /> <Setter Property="VerticalAlignment" Value="Bottom" /> </Style>

</phone:PhoneApplicationPage.Resources>

Два последних описания Style переопределяют свойства HorizontalAlignment и VerticalAlignment, заданные в первом стиле. Благодаря этому два элемента TextBlock могут использовать эти два разных стиля:

Проект Silverlight: StyleInheritance Файл: MainPage.xaml (фрагмент)

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <TextBlock Text="Whadayasay?"

Style="{StaticResource upperLeftStyle}" />

<TextBlock Text="Fuhgedaboudit!"

Style="{StaticResource lowerRightStyle}" />

</Grid>

Неявные стили, введенные в Silverlight 4, не поддерживаются в Silverlight для Windows Phone.

Источник: Чарльз Петзольд, Программируем Windows Phone 7, Microsoft Press, © 2011.

По теме:

  • Комментарии