1 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3 Title="Animate Rotation"
4 x:Class="AnimateRotate.Page1"
8 <TabControl MinHeight="500" MaxHeight="700" MinWidth="400">
9 <TabItem Style="{StaticResource TabStyle}" Header="Animate Rotation Sample" IsSelected="true">
11 <TextBlock Style="{StaticResource HeaderStyle}">Animate Rotation Sample</TextBlock>
13 <TextBlock Style="{StaticResource mainContentStyle}">This example demonstrates rotation animations.</TextBlock>
18 <TabItem Name="xaml" Style="{StaticResource TabStyle}" Header="XAML">
20 <TextBlock Name="xamlCheck" Style="{StaticResource CodeSnippetParagraph}" xml:space="preserve"><![CDATA[
22 <Canvas Width="400" Height="550">
24 <Rectangle Canvas.Top="100" Canvas.Left="100" Fill="Blue" Width="50" Height="50" Stroke="black"
25 StrokeThickness="5" Opacity="0.25" />
26 <Rectangle Canvas.Top="250" Canvas.Left="100" Fill="Blue" Width="50" Height="50" Stroke="black"
27 StrokeThickness="5" Opacity="0.25" />
28 <Rectangle Canvas.Top="400" Canvas.Left="100" Fill="Blue" Width="50" Height="50" Stroke="black"
29 StrokeThickness="5" Opacity="0.25" />
31 <Rectangle Name="myRotatedFromCenterRectangle"
32 Canvas.Top="100" Canvas.Left="100" Fill="blue"
33 Width="50" Height="50" Stroke="black"
35 <Rectangle.RenderTransform>
36 <RotateTransform Angle="0" Center="25,25" />
37 </Rectangle.RenderTransform>
39 <Rectangle Name="myRotatedFromLeftEdgeRectangle"
40 Canvas.Top="250" Canvas.Left="100" Fill="blue"
41 Width="50" Height="50" Stroke="black"
43 <Rectangle.RenderTransform>
44 <RotateTransform Angle="0" Center="0,0" />
45 </Rectangle.RenderTransform>
48 <Rectangle Name="myRotatedFromAnimatedCenterRectangle"
49 Canvas.Top="400" Canvas.Left="100" Fill="blue"
50 Width="50" Height="50" Stroke="black"
52 <Rectangle.RenderTransform>
53 <RotateTransform Angle="0" Center="0,0" />
54 </Rectangle.RenderTransform>
58 <StackPanel Orientation="Horizontal">
60 <EventTrigger SourceName="startButton" RoutedEvent="Button.Click">
61 <BeginStoryboard Name="myBeginStoryboard">
62 <Storyboard Name="myStoryboard">
63 <DoubleAnimation Storyboard.TargetName="myRotatedFromCenterRectangle"
64 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
65 From="0" To="360" RepeatBehavior="Forever" Duration="0:0:4"/>
66 <DoubleAnimation Storyboard.TargetName="myRotatedFromLeftEdgeRectangle"
67 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
68 From="0" To="360" RepeatBehavior="Forever" Duration="0:0:4"/>
69 <DoubleAnimation Storyboard.TargetName="myRotatedFromAnimatedCenterRectangle"
70 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
71 From="0" To="360" RepeatBehavior="4x" Duration="0:0:4" />
72 <DoubleAnimation Storyboard.TargetName="myRotatedFromAnimatedCenterRectangle"
73 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.CenterX)"
74 From="0" To="50" Duration="0:0:16" />
75 <DoubleAnimation Storyboard.TargetName="myRotatedFromAnimatedCenterRectangle"
76 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.CenterY)"
77 From="0" To="50" Duration="0:0:16" />
82 <EventTrigger SourceName="pauseButton" RoutedEvent="Button.Click" >
83 <PauseStoryboard BeginStoryboardName="myBeginStoryboard">
87 <EventTrigger RoutedEvent="Button.Click" SourceName="restartButton">
88 <ResumeStoryboard BeginStoryboardName="myBeginStoryboard">
92 <EventTrigger RoutedEvent="Button.Click" SourceName="stopButton">
93 <StopStoryboard BeginStoryboardName="myBeginStoryboard">
97 </StackPanel.Triggers>
98 <Button Name="startButton">Start
100 <Button Name="restartButton">Restart
102 <Button Name="pauseButton">Pause
104 <Button Name="stopButton">Stop
114 <TabItem Name="xamlcsharp" Style="{StaticResource TabStyle}" Header="XAML + C#">
115 <TabControl TabStripPlacement="Right">
116 <TabItem Name="xcsharpCheck" Style="{StaticResource TabStyle2}" Header="XAML"></TabItem>
118 <TabItem Style="{StaticResource TabStyle2}" Header="C#"></TabItem>
122 <TabItem Name="xamlvb" Style="{StaticResource TabStyle}" Header="XAML + Visual Basic.NET">
123 <TabControl TabStripPlacement="Right">
124 <TabItem Name="xvbCheck" Style="{StaticResource TabStyle2}" Header="XAML"></TabItem>
125 <TabItem Style="{StaticResource TabStyle2}" Header="VB.NET"></TabItem>
128 <TabItem Name="csharp" Style="{StaticResource TabStyle}" Header="C#"></TabItem>
130 <TabItem Name="vb" Style="{StaticResource TabStyle}" Header="Visual Basic.NET"></TabItem>
132 <TabItem Name="managedcpp" Style="{StaticResource TabStyle}" Header="Managed C++"></TabItem>
134 <TabItem Style="{StaticResource TabStyle}" Header="Preview Sample">
135 <!-- AnimatedRotationExample.xaml
136 This example shows how to animate the angle of RotateTransform objects. -->
137 <Canvas> <!--Storyboards moved to root-->
139 <Canvas Width="400" Height="550">
141 <!-- Mark the original, non-animated positions of the three rectangles -->
142 <Rectangle Canvas.Top="100" Canvas.Left="100" Fill="Blue" Width="50" Height="50" Stroke="black"
143 StrokeThickness="5" Opacity="0.25" />
144 <Rectangle Canvas.Top="250" Canvas.Left="100" Fill="Blue" Width="50" Height="50" Stroke="black"
145 StrokeThickness="5" Opacity="0.25" />
146 <Rectangle Canvas.Top="400" Canvas.Left="100" Fill="Blue" Width="50" Height="50" Stroke="black"
147 StrokeThickness="5" Opacity="0.25" />
149 <!-- Create the rectangles to animate. -->
150 <Rectangle Name="myRotatedFromCenterRectangle"
151 Canvas.Top="100" Canvas.Left="100" Fill="blue"
152 Width="50" Height="50" Stroke="black"
154 <Rectangle.RenderTransform>
156 <!-- Set the center of this RotateTransform to the
157 center of the rectangle so that the
158 rectangle appears to rotate about its center
159 when the animation is applied. -->
160 <RotateTransform Angle="0" CenterX="25" CenterY="25" />
161 </Rectangle.RenderTransform>
164 <Rectangle Name="myRotatedFromLeftEdgeRectangle"
165 Canvas.Top="250" Canvas.Left="100" Fill="blue"
166 Width="50" Height="50" Stroke="black"
168 <Rectangle.RenderTransform>
170 <!-- Set the center of this RotateTransform to the
171 top-left corner of the rectangle so that the
172 rectangle appears to rotate about top-left corner
173 when the animation is applied. -->
174 <RotateTransform Angle="0" CenterX="0" CenterY="0" />
175 </Rectangle.RenderTransform>
178 <Rectangle Name="myRotatedFromAnimatedCenterRectangle"
179 Canvas.Top="400" Canvas.Left="100" Fill="blue"
180 Width="50" Height="50" Stroke="black"
182 <Rectangle.RenderTransform>
183 <RotateTransform Angle="0" CenterX="0" CenterY="0" />
184 </Rectangle.RenderTransform>
189 <StackPanel Orientation="Horizontal">
191 <!-- Create some buttons to control the animations. -->
192 <Button Name="startButton">Restart</Button>
193 <Button Name="stopButton">Stop</Button>
195 <StackPanel.Triggers>
196 <EventTrigger RoutedEvent="Button.Click" SourceName="startButton">
197 <BeginStoryboard Name="myBeginStoryboard">
199 <!-- This timeline is used to control the animations in this example. -->
201 <!-- Animate the angle of the rectangle's RotateTransform from
202 0 to 360 over 4 seconds. -->
203 <DoubleAnimation Storyboard.TargetName="myRotatedFromCenterRectangle"
204 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
205 From="0" To="360" RepeatBehavior="Forever" Duration="0:0:4" />
207 <!-- Animate the angle of the rectangle's RotateTransform from
208 0 to 360 over 4 seconds. -->
210 Storyboard.TargetName="myRotatedFromLeftEdgeRectangle"
211 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
212 From="0" To="360" RepeatBehavior="Forever" Duration="0:0:4" />
215 <!-- Animate the center and angle of the rectangle's RotateTransform. -->
216 <DoubleAnimation Storyboard.TargetName="myRotatedFromAnimatedCenterRectangle"
217 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
218 From="0" To="360" RepeatBehavior="4x" Duration="0:0:4" />
219 <DoubleAnimation Storyboard.TargetName="myRotatedFromAnimatedCenterRectangle"
220 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.CenterX)"
221 From="0" To="50" Duration="0:0:16" />
222 <DoubleAnimation Storyboard.TargetName="myRotatedFromAnimatedCenterRectangle"
223 Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.CenterY)"
224 From="0" To="50" Duration="0:0:16" />
229 <EventTrigger RoutedEvent="Button.Click" SourceName="stopButton">
230 <StopStoryboard BeginStoryboardName="myBeginStoryboard" />
232 </StackPanel.Triggers>