Rotates an object clockwise about a specified point in a two-dimensional x-y coordinate system.
A RotateTransform object is defined by the following properties: Angle rotates an object by a specified angle about the point CenterX,CenterY.
When you use a RotateTransform, the transformation rotates the coordinate system for a particular object about the point (0,0). Therefore, depending on the position of the object, it might not rotate in place (around its center). For example, if an object is positioned 200 units from 0 along the x-axis, a rotation of 30 degrees can swing the object 30 degrees along a circle that has a radius of 200, which is drawn around the origin. To rotate an object in place, set the CenterX and CenterY values of the RotateTransform to the center of the object to rotate.
You can offset the local (0,0) position for an object on a Canvas by using the Canvas.Left and Canvas.Top properties, but this does not count as a transform; the object retains its own local (0,0) position in this case for transform purposes.
You can apply multiple transforms with a TransformGroup object.
Transforms can alter the display of text in your application to create a decorative effect. The following illustration shows text rotated 90 degrees by using a RotateTransform.
The following example uses a RotateTransform to rotate text. An Angle property value of 90 rotates the element 90 degrees clockwise.
<!-- Rotate the text 90 degrees by using a RotateTransform. --> <TextBlock Text="Rotated Text" FontSize="32" Foreground="Teal"> <TextBlock.RenderTransform> <RotateTransform Angle="90" /> </TextBlock.RenderTransform> </TextBlock>
The following example shows how to increase the Angle property value applied to a Rectangle every time the Rectangle is clicked.
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="200" Height="200"> <Rectangle MouseLeftButtonDown="handleMouseButtonDown" Width="50" Height="50" Fill="RoyalBlue"> <Rectangle.RenderTransform> <!-- If you give the transform a name, you can access it easily from code. --> <RotateTransform x:Name="myRotateTransform" /> </Rectangle.RenderTransform> </Rectangle> </Canvas>