added SSCLI 1.0
[windows-sources.git] / sdk / samples / WPFSamples / animation_gallery / csharp / 3d / controllablerotatingcubeexample.xaml
blob1c25bcae76c6309554abd079df68816468922234
1 <!-- ControllableRotatingCubeExample.xaml
2      Uses triggers to interactively rotate a cube.
3 -->
4 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
5   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
6   xmlns:SampleControls="SampleControls"
7   x:Class="Microsoft.Samples.Animation.AnimationGallery.ControllableRotatingCubeExample" 
8   WindowTitle="3D Rotation Example">
9   <Page.Background>
10     <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
11       <LinearGradientBrush.GradientStops>
12         <GradientStop Color="Black" Offset="0.4" />
13         <GradientStop Color="#333333" Offset="0.5" />
14         <GradientStop Color="Black" Offset="0.6" />
15       </LinearGradientBrush.GradientStops>
16     </LinearGradientBrush>
17   </Page.Background>
18   <DockPanel>
19     <Grid DockPanel.Dock="Bottom" HorizontalAlignment="Center">
20       <Grid.ColumnDefinitions>
21         <ColumnDefinition />
22         <ColumnDefinition />
23         <ColumnDefinition />
24       </Grid.ColumnDefinitions>
25       <Grid.RowDefinitions>
26         <RowDefinition />
27         <RowDefinition />
28         <RowDefinition />
29       </Grid.RowDefinitions>
30       <Button Width="50" Height="50" Grid.Column="0" Grid.Row="1">
31         <Image>
32           <Image.Source>
33             <DrawingImage>
34               <DrawingImage.Drawing>
35                 <DrawingGroup>
36                   <DrawingGroup.Children>
37                     <GeometryDrawing Geometry="{StaticResource LeftArrowGeometry}">
38                       <GeometryDrawing.Pen>
39                         <Pen Thickness="10" Brush="Black"  />
40                       </GeometryDrawing.Pen>
41                     </GeometryDrawing>
42                   </DrawingGroup.Children>
43                 </DrawingGroup>
44               </DrawingImage.Drawing>
45             </DrawingImage>
46           </Image.Source>
47         </Image>
49         <Button.Triggers>
50           <EventTrigger RoutedEvent="Button.MouseEnter">
51             <BeginStoryboard Name="LeftSpinBeginStoryboard">
52               <Storyboard>
53               
54                 <!-- Rotates the cube to the left. -->
55                 <DoubleAnimation 
56                   Storyboard.TargetName="myHorizontalRotation"
57                   Storyboard.TargetProperty="Angle"
58                   By="-90" Duration="0:0:0.5" IsCumulative="True"
59                   RepeatBehavior="Forever" />
60               </Storyboard>
61             </BeginStoryboard>
62           </EventTrigger>
63           <EventTrigger RoutedEvent="Button.MouseLeave">
64             <PauseStoryboard BeginStoryboardName="LeftSpinBeginStoryboard" />
65           </EventTrigger>
66         </Button.Triggers>
67       </Button>
69       <Button Width="50" Height="50"
70         Grid.Column="2" Grid.Row="1">
71         <Image>
72           <Image.Source>
73             <DrawingImage>
74               <DrawingImage.Drawing>
75                 <DrawingGroup>
76                   <DrawingGroup.Children>
77                     <GeometryDrawing Geometry="{StaticResource RightArrowGeometry}">
78                       <GeometryDrawing.Pen>
79                         <Pen Thickness="10" Brush="Black"  />
80                       </GeometryDrawing.Pen>
81                     </GeometryDrawing>
82                   </DrawingGroup.Children>
83                 </DrawingGroup>
84               </DrawingImage.Drawing>
85             </DrawingImage>
86           </Image.Source>
87         </Image>
89         <Button.Triggers>
90           <EventTrigger RoutedEvent="Button.MouseEnter">
91             <BeginStoryboard Name="RightSpinBeginStoryboard">
92               <Storyboard>
93                 <!-- Rotates the cube to the right. -->
94                 <DoubleAnimation 
95                   Storyboard.TargetName="myHorizontalRotation"
96                   Storyboard.TargetProperty="Angle"
97                   By="90" Duration="0:0:0.5" IsCumulative="True"
98                   RepeatBehavior="Forever" />
99               </Storyboard>
100             </BeginStoryboard>
101           </EventTrigger>
102           <EventTrigger RoutedEvent="Button.MouseLeave">
103             <PauseStoryboard BeginStoryboardName="RightSpinBeginStoryboard" />
104           </EventTrigger>
105         </Button.Triggers>
106       </Button>
108       <Button 
109         Width="50" Height="50"
110         Grid.Column="1" Grid.Row="0">
111         <Image>
112           <Image.Source>
113             <DrawingImage>
114               <DrawingImage.Drawing>
115                 <DrawingGroup>
116                   <DrawingGroup.Children>
117                     <GeometryDrawing Geometry="{StaticResource UpArrowGeometry}">
118                       <GeometryDrawing.Pen>
119                         <Pen Thickness="10" Brush="Black"  />
120                       </GeometryDrawing.Pen>
121                     </GeometryDrawing>
122                   </DrawingGroup.Children>
123                 </DrawingGroup>
124               </DrawingImage.Drawing>
125             </DrawingImage>
126           </Image.Source>
127         </Image>
129         <Button.Triggers>
130           <EventTrigger RoutedEvent="Button.MouseEnter">
131             <BeginStoryboard Name="UpwardSpinBeginStoryboard">
132               <Storyboard>
133               
134                 <!-- Rotates the cube upwards. -->
135                 <DoubleAnimation 
136                   Storyboard.TargetName="myVerticalRotation"
137                   Storyboard.TargetProperty="Angle"
138                   By="90" Duration="0:0:0.5" IsCumulative="True"
139                   RepeatBehavior="Forever" />
140               </Storyboard>
141             </BeginStoryboard>
142           </EventTrigger>
143           <EventTrigger RoutedEvent="Button.MouseLeave">
144             <PauseStoryboard BeginStoryboardName="UpwardSpinBeginStoryboard" />
145           </EventTrigger>
146         </Button.Triggers>
147       </Button>
149       <Button Height="50" Width="50"
150         Grid.Column="1" Grid.Row="2">
151         <Image>
152           <Image.Source>
153             <DrawingImage>
154               <DrawingImage.Drawing>
155                 <DrawingGroup>
156                   <DrawingGroup.Children>
157                     <GeometryDrawing Geometry="{StaticResource DownArrowGeometry}">
158                       <GeometryDrawing.Pen>
159                         <Pen Thickness="10" Brush="Black"  />
160                       </GeometryDrawing.Pen>
161                     </GeometryDrawing>
162                   </DrawingGroup.Children>
163                 </DrawingGroup>
164               </DrawingImage.Drawing>
165             </DrawingImage>
166           </Image.Source>
167         </Image>
168         <Button.Triggers>
169           <EventTrigger RoutedEvent="Button.MouseEnter">
170             <BeginStoryboard Name="DownwardSpinBeginStoryboard">
171               <Storyboard>
172               
173                 <!-- Rotates the cube downwards. -->
174                 <DoubleAnimation 
175                   Storyboard.TargetName="myVerticalRotation"
176                   Storyboard.TargetProperty="Angle"
177                   By="-90" Duration="0:0:0.5" IsCumulative="True"
178                   RepeatBehavior="Forever" />
179               </Storyboard>
180             </BeginStoryboard>
181           </EventTrigger>
182           <EventTrigger RoutedEvent="Button.MouseLeave">
183             <PauseStoryboard BeginStoryboardName="DownwardSpinBeginStoryboard" />
184           </EventTrigger>
185         </Button.Triggers>
186       </Button>
188     </Grid>
191     
192     <Viewbox ClipToBounds="True" Width="500" Height="500">
193       <!-- The object to animate. -->
194       <Viewport3D Width="400" Height="300">
195         <Viewport3D.Camera>
196           <PerspectiveCamera x:Name="myPerspectiveCamera"
197             FarPlaneDistance="15" 
198             LookDirection="0,0,-1" UpDirection="0,1,0" NearPlaneDistance="1" 
199             Position="0,0,3" FieldOfView="50" 
200              />
201         </Viewport3D.Camera>
202         <ModelVisual3D>
203           <ModelVisual3D.Children>
204             <ModelVisual3D>
205               <ModelVisual3D.Content>
206                 <AmbientLight Color="#333333" />
207               </ModelVisual3D.Content>
208             </ModelVisual3D>
209             <ModelVisual3D>
210               <ModelVisual3D.Content>
211                 <DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
212               </ModelVisual3D.Content>
213             </ModelVisual3D>
214             <ModelVisual3D>
215               <ModelVisual3D.Content>
216                 <DirectionalLight Color="#FFFFFF" Direction="0.612372,-0.5,-0.612372" />
217               </ModelVisual3D.Content>
218             </ModelVisual3D>
219             <ModelVisual3D>
220               <ModelVisual3D.Content>
221                 <GeometryModel3D Geometry="{StaticResource CubeSide01}" Material="{StaticResource BranchesMaterial}"/>
222               </ModelVisual3D.Content>
223             </ModelVisual3D>
224             <ModelVisual3D>
225               <ModelVisual3D.Content>
226                 <GeometryModel3D Geometry="{StaticResource CubeSide02}" Material="{StaticResource FlowersMaterial}"/>
227               </ModelVisual3D.Content>
228             </ModelVisual3D>
229             <ModelVisual3D>
230               <ModelVisual3D.Content>
231                 <GeometryModel3D Geometry="{StaticResource CubeSide03}" Material="{StaticResource BerriesMaterial}"/>
232               </ModelVisual3D.Content>
233             </ModelVisual3D>
234             <ModelVisual3D>
235               <ModelVisual3D.Content>
236                 <GeometryModel3D Geometry="{StaticResource CubeSide04}" Material="{StaticResource LeavesMaterial1}"/>
237               </ModelVisual3D.Content>
238             </ModelVisual3D>
239             <ModelVisual3D>
240               <ModelVisual3D.Content>
241                 <GeometryModel3D Geometry="{StaticResource CubeSide05}" Material="{StaticResource RocksMaterial}"/>
242               </ModelVisual3D.Content>
243             </ModelVisual3D>
244             <ModelVisual3D>
245               <ModelVisual3D.Content>
246                 <GeometryModel3D Geometry="{StaticResource CubeSide06}" Material="{StaticResource SunsetMaterial}"/>
247               </ModelVisual3D.Content>
248             </ModelVisual3D>
249           </ModelVisual3D.Children>
251           <ModelVisual3D.Transform>
252             <Transform3DGroup >
253               <Transform3DGroup.Children>
254               
255                 <!-- These RotateTransform objects are animated to
256                      rotate the cube left and right. -->
257                 <RotateTransform3D>
258                   <RotateTransform3D.Rotation>
259                     <AxisAngleRotation3D x:Name="myHorizontalRotation" Angle="0" Axis="0 1 0" />
260                   </RotateTransform3D.Rotation>
261                 </RotateTransform3D>
262                 <RotateTransform3D>
263                   <RotateTransform3D.Rotation>
264                     <AxisAngleRotation3D x:Name="myVerticalRotation" Angle="0" Axis="1 0 0" />
265                   </RotateTransform3D.Rotation>
266                 </RotateTransform3D>
267                 <TranslateTransform3D x:Name="myTranslateTransform" 
268                   OffsetX="0" OffsetY="0" OffsetZ="0" />
269               </Transform3DGroup.Children>
270             </Transform3DGroup>
271           </ModelVisual3D.Transform>
272         </ModelVisual3D>
273       </Viewport3D>
274       </Viewbox>
275   </DockPanel>
276   
278 </Page>