Главная » Silverlight » Анимация кистей

0

Анимировать кисти так же легко, как и объекты преобразований. Для этого доста­точно задать изменение вложенного свойства, используя совместимый с ним анимаци­онный класс.

На рис. 10.9 показан пример анимации кисти RadialGradientBrush, которая рас­сматривалась в главе 8. При выполнении анимации центральная точка радиального градиента смещается, создавая иллюзию трехмерного эффекта. Одновременно внеш­ний цвет градиента изменяется от синего к черному.

Рис. 10.9. Изменение радиального градиента

В данном примере используются два анимационных класса, которые мы еще не рас­сматривали. Класс ColorAnimation создает эффект плавного изменения цветового гра­диента, а класс PointAnimation перемещает точку из одной позиции в другую (этого же результата можно достичь путем одновременного изменения координат X и Y методом линейной интерполяции с помощью двух отдельных объектов DoubleAnimation). Объект PointAnimation обычно применяют для деформирования фигуры, состоящей из ряда точек, или для изменения позиций характерных точек, например центральной точки радиального градиента, как в данном примере.

Ниже приведена разметка, определяющая эллипс и кисть.

<Ellipse x:Name="ellipse" Margin="5" Grid.Row="l" Stretch="Uniform"> <Ellipse.Fill> <RadialGradientBrush x:Name="ellipseBrush" RadiusX="l" RadiusY="l" Gradient0rigin="0.7,0.3"> <GradientStop x:Name="ellipseBrushStop" Color="White" Of fset="0"></GradientStop>

<GradientStop Color="Blue" Offset="l"></GradientStop> </RadialGradientBrush> </Ellipse.Fill>

</Ellipse>

Ниже приведена разметка двух анимаций, которые изменяют второй цвет градиен­та и перемещают центральную точку градиента.

<Storyboard x:Name="ellipseStoryboard"> <PointAnimation Storyboard.TargetName="ellipseBrush" Storyboard.TargetProperty="GradientOrigin" From="0.7,0.З" To="0.3,0.7" Duration="0:0:10" AutoReverse="True" RepeatBehavior="Forever"> </PointAnimation>

<ColorAnimation Storyboard.TargetName="ellipseBrushStop" Storyboard.TargetProperty="Color" To="Black" Duration="0:0:10" AutoReverse="True" RepeatBehavior="Forever"> </ColorAnimation>

</Storyboard>

Изменяя цвета и смещения градиентов LinearGradientBrush и RadialGradientBrush, можно создать ряд захватывающих эффектов. Если этого недостаточно, можно изме­нять градиентные кисти, имеющие свойство RelativeTransform, с помощью которого можно поворачивать, масштабировать, растягивать и наклонять градиенты. (Команда WPF создала полезный инструмент Gradient Obsession для создания анимаций на осно­ве градиентов, большинство из которых с небольшими переделками работоспособны в среде Silverlight; найти этот инструмент можно по такому адресу:

www.windowsclient.net/downloads/folders/controlgallery/entry2 33 6.aspx

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

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