Кроме анимаций Silverlight предлагает еще трансформации. Эти трансформации устанавливаются с помощью свойства RenderTransform, определенного у элементов управления. Например,
<Button Content="Hello World" Width="200" Height="30"> <Button.RenderTransform> <RotateTransform Angle="45" CenterX="100" /> </Button.RenderTransform> </Button>
Выше был приведен пример этой трансформации. Она обеспечивает поворот элемента на определенный угол, задаваемый свойством Angle. Кроме того, свойства CenterX и CenterY позволяют сместить центр поворота относительно осей координат.
Обеспечивает масштабирование элемента на определенную величину. Чтобы изменить ширину, надо задать свойство ScaleX, а длину - свойство ScaleY. Кроме того, также имеются свойства CenterX и CenterY, позволяющие позиционировать элемент.
<Button Content="Hello World" Width="200" Height="30"> <Button.RenderTransform> <ScaleTransform ScaleX="1.2" CenterX="70" ScaleY="1.3" /> </Button.RenderTransform> </Button>
Позволяет сместить положение элемента по оси X, с помощью свойства X, и по оси Y - с помощью свойства Y.
<Button Content="Hello World" Width="200" Height="30"> <Button.RenderTransform> <TranslateTransform Y="-30" /> </Button.RenderTransform> </Button>
Позволяет задать наклон элемента вдоль оси X, с помощью свойства AngleX, и по оси Y - с помощью свойства AngleY. Кроме того, также имеются свойства CenterX и CenterY, позволяющие позиционировать элемент.
<Button Content="Hello World" Width="200" Height="30"> <Button.RenderTransform> <SkewTransform AngleX="45" /> </Button.RenderTransform> </Button>
Осуществляет матричное преобразование элемента. В свойстве Matrix мы задаем первые два столбца, применяющиеся при преобразовании. Последний столбец по умолчанию имеет значения {0 0 1}.
<Button Content="Hello World" Width="200" Height="30"> <Button.RenderTransform> <MatrixTransform Matrix="1 0 1 2 1 -3" /> </Button.RenderTransform> </Button>
С помощью этого объекта мы можем комбинировать различные трансформации вместе:
<Button Content="Hello World" Width="200" Height="30"> <Button.RenderTransform> <TransformGroup> <RotateTransform Angle="45" /> <TranslateTransform Y="-40" X="30" /> </TransformGroup> </Button.RenderTransform> </Button>