Часто задаваемые вопросы по SilverLight: анимация и трансформации - Какими различными способами Silverlight выполняет трансформацию?

ОГЛАВЛЕНИЕ

Какими различными способами Silverlight выполняет трансформацию?

Иногда вам нужно преобразовать ваш объект различными способами. Например, вы можете захотеть наклонить ваш объект на 45 градусов; вы можете захотеть исказить или вращать объект. Ниже приведены несколько важных примеров трансформации, которые вы можете выполнить с помощью Silverlight.

Ниже показан простой пример, использующий ‘RotateTransform’, чтобы наклонить текст на 45 градусов.

<TextBlock HorizontalAlignment="Center" 
Text="Text
rotated by 45 degree">
<TextBlock.RenderTransform>
<RotateTransform Angle="45" />
</TextBlock.RenderTransform>
</TextBlock>


                        S

Ниже показан простой пример, использующий ‘ScaleTransform’, чтобы установить для текста масштаб ‘2’.

<TextBlock VerticalAlignment="Center"
 HorizontalAlignment="Center"
Text="Text scaled with 2">
<TextBlock.RenderTransform>
<ScaleTransform ScaleX="2"/>
</TextBlock.RenderTransform>
</TextBlock>

Ниже показан простой пример, использующий ‘RenderTransform’, чтобы поместить ваш текст в конкретную точку X и Y.

<TextBlock VerticalAlignment="Center" 
HorizontalAlignment="Center" Text="Text
with X/Y values">
<TextBlock.RenderTransform>
<TranslateTransform X="-100" Y="-100"/>
</TextBlock.RenderTransform>
</TextBlock>

Если вы хотите наклонить ваш объект, ниже приведен простой фрагмент кода XAML, который наклоняет ваш объект на 45 градусов.

<Rectangle Fill="Chocolate" 
Stroke="Black" Width="100" Height="100">
<Rectangle.RenderTransform>
<SkewTransform AngleX="45"/>
</Rectangle.RenderTransform>
</Rectangle>

Иногда вам бывает нужно применить два или больше типов трансформации к объекту. В этих сценариях вы можете использовать ‘TransformGroup’, чтобы применить многократную трансформацию.
Ниже приведен фрагмент кода, показывающий одновременное применение ‘SkewTransform’ и ‘RotateTransform’ к объекту прямоугольника.

<Rectangle Fill="Chocolate" 
Stroke="Black" Width="100" Height="100">
<Rectangle.RenderTransform>
<TransformGroup>

<SkewTransform AngleX="45"/>
<RotateTransform Angle="45"/>

</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>

Автор: Shivprasad Koirala