Главная » Silverlight » Анимация перспективных проекций

0

Кроме преобразований, можно анимировать перспективные проекции — класс PlaneProjection (см. главу 9), позволяющий имитировать перемещение плоскости в трехмерном пространстве. Предположим, группа элементов заключена в элемент управления Border, к которому применена перспективная проекция.

<Border CornerRadius="2" Padding="10" Height="140"

Width="170"

BorderBrush="SlateGray" BorderThickness="4">

<Border.Projection> <PlaneProjection x:Name="projection"></PlaneProjection>

</Border.Projection>

</Border>

Сейчас объект PlaneProjection неподвижен. Чтобы привести его в движение, мож­но анимировать свойства RotateX, RotateY и RotateZ, задающие поворот объекта Border вокруг соответствующих осей. Установка этих свойств рассматривается в гла­ве 9, а в данном примере они изменяются непрерывно с помощью анимации.

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

<Storyboard х:Name="spinStoryboard">

<DoubleAnimation Storyboard.TargetName="projection"

RepeatBehavior="Forever" Storyboard.TargetProperty="RotationY" From="0" To="360"

Duration="0:0:3">

</DoubleAnimation>

<DoubleAnimation Storyboard.TargetName="projection" RepeatBehavior="Forever" Storyboard.TargetProperty="RotationZ" From="0" To="360"

Duration="0:0:30">

</DoubleAnimation>

<DoubleAnimation Storyboard.TargetName="projection"

RepeatBehavior="Forever" Storyboard.TargetProperty="RotationX" From="0" To="360"

Duration="0:0:40">

</DoubleAnimation> </Storyboard>

На рис. 10.8 показана вращающаяся рамка в двух разных точках анимации.

Рис. 10.8. Вращение элемента в трехмерном пространстве

На первый взгляд данная технология может показаться бесполезной игрушкой, од­нако при умелом использовании она позволяет создавать много полезных эффектов. Например, можно создать вращающуюся панель, открывающую содержимое своей об­ратной стороны. Для этого нужно создать две панели. Одну повернуть вокруг оси X или У от 0° до 90° (при этом она исчезнет), а другую — от -90° до 0°, в результате чего ее содержимое появится на экране.

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

По теме:

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