added SSCLI 1.0
[windows-sources.git] / sdk / samples / WPFSamples / animation_gallery / csharp / app.xaml
blob04da68794ace764d6eb1fd50baf1ff300c71f35b
1 <Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3   x:Class="Microsoft.Samples.Animation.AnimationGallery.app">
4   <Application.Resources>
9     <!-- Brushes -->
10     <DrawingBrush x:Key="MyGridBrushResource" 
11       Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile">
12       <DrawingBrush.Drawing>
13         <DrawingGroup>
14           <DrawingGroup.Children>
15             <GeometryDrawing Brush="#FFFFFFFF">
16               <GeometryDrawing.Geometry>
17                 <RectangleGeometry Rect="0,0,1,1" />
18               </GeometryDrawing.Geometry>
19             </GeometryDrawing>
20             <GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="#66CCCCFF" />
21             <GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="#66CCCCFF" />
22           </DrawingGroup.Children>
23         </DrawingGroup>
24       </DrawingBrush.Drawing>
25     </DrawingBrush>
27     <DrawingBrush x:Key="MyPartiallyTransparentGridBrushResource" 
28       Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile">
29       <DrawingBrush.Drawing>
30         <DrawingGroup>
31           <DrawingGroup.Children>
32             <GeometryDrawing Brush="#99FFFFFF">
33               <GeometryDrawing.Geometry>
34                 <RectangleGeometry Rect="0,0,1,1" />
35               </GeometryDrawing.Geometry>
36             </GeometryDrawing>
37             <GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="#66CCCCFF" />
38             <GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="#66CCCCFF" />
39           </DrawingGroup.Children>
40         </DrawingGroup>
41       </DrawingBrush.Drawing>
42     </DrawingBrush>
44     <DrawingBrush x:Key="MyWireBrushResource" 
45       Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile">
46       <DrawingBrush.Drawing>
47         <DrawingGroup>
48           <DrawingGroup.Children>
49             <GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="#66CCCCFF" />
50             <GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="#66CCCCFF" />
51           </DrawingGroup.Children>
52         </DrawingGroup>
53       </DrawingBrush.Drawing>
54     </DrawingBrush>
56     <ImageBrush x:Key="SteelBrushResource"
57       ImageSource="sample_images\steel.png" Stretch="None" TileMode="Tile" 
58       Viewport="0,0,500,300" ViewportUnits="Absolute" />
60     <ImageBrush x:Key="CloudyGlassBrushResource"
61       ImageSource="sample_images\clouds.png" Stretch="None" TileMode="FlipXY" />
62       
63     <GradientStopCollection x:Key="MyGlassGradientStopsResource">
64       <GradientStop Color="White" Offset="0.2" />
65       <GradientStop Color="Transparent" Offset="0.4" />
66       <GradientStop Color="White" Offset="0.5" />
67       <GradientStop Color="Transparent" Offset="0.75" />
68       <GradientStop Color="White" Offset="0.9" />
69       <GradientStop Color="Transparent" Offset="1.0" />
70     </GradientStopCollection>      
72     <LinearGradientBrush x:Key="MyGlassBrushResource" 
73       StartPoint="0,0" EndPoint="1,1" Opacity="1" 
74       GradientStops="{StaticResource MyGlassGradientStopsResource}" />
77     <!-- Other Resources -->
81     <PathGeometry x:Key="LeftArrowGeometry" Figures="M10,25 L30,40 20,25 30,10Z" />
82     <PathGeometry x:Key="RightArrowGeometry" Figures="M10,25 L30,40 20,25 30,10Z" >
83       <PathGeometry.Transform>
84         <RotateTransform CenterX="20" CenterY="30" Angle="180" />
85       </PathGeometry.Transform>
86     </PathGeometry>
87     <PathGeometry x:Key="UpArrowGeometry" Figures="M10,25 L30,40 20,25 30,10Z" >
88       <PathGeometry.Transform>
89         <RotateTransform CenterX="20" CenterY="30" Angle="90" />
90       </PathGeometry.Transform>
91     </PathGeometry>
92     <PathGeometry x:Key="DownArrowGeometry" Figures="M10,25 L30,40 20,25 30,10Z" >
93       <PathGeometry.Transform>
94         <RotateTransform CenterX="20" CenterY="30" Angle="270" />
95       </PathGeometry.Transform>
96     </PathGeometry>
100     <!-- Styles & Templates -->
102     <Style TargetType="{x:Type TextBlock}">
103       <Setter Property="TextBlock.FontFamily" Value="Verdana" />
104       <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
105       <Setter Property="TextBlock.FontWeight" Value="Normal" />
106     </Style>
108     <Style x:Key="HorizontalSliderStyle" TargetType="{x:Type Slider}">
109       <Setter Property = "TickFrequency" Value =".01"/>
110       <Setter Property = "MinWidth" Value ="100"/>
111       <Setter Property = "Minimum" Value ="0"/>
112       <Setter Property = "Maximum" Value ="1"/>
113       <Setter Property = "HorizontalAlignment" Value ="Left"/>
114       <Setter Property = "Orientation" Value ="Horizontal"/>
115     </Style>
117     <Style TargetType="{x:Type TextBlock}" x:Key="CodeTextBlockStyle">
118       <Setter Property="TextBlock.FontFamily" Value="Courier New" />
119       <Setter Property="TextBlock.HorizontalAlignment" Value="Left" />
120       <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
121       <Setter Property="TextBlock.FontWeight" Value="Normal" />
122       <Setter Property="TextBlock.MaxWidth" Value="500" />
123     </Style>
125     <Style x:Key="myIntroTextBorderStyle" TargetType="{x:Type Border}">
126       <Setter Property="Border.Background">
127         <Setter.Value>
128           <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
129             <LinearGradientBrush.GradientStops>
130               <GradientStop Offset="0.0" Color="#CCCCFF" />
131               <GradientStop Offset="0.0" Color="White" />
132             </LinearGradientBrush.GradientStops>
133           </LinearGradientBrush>
134         </Setter.Value>
135       </Setter>
136       <Setter Property="Border.HorizontalAlignment" Value="Stretch" />
137       <Setter Property="Border.BorderBrush" Value="Gray" />
138       <Setter Property="Border.BorderThickness" Value="1" />
139       <Setter Property="Border.Margin" Value="0,0,0,40" />
140       <Setter Property="Border.VerticalAlignment" Value="Top" />
141     </Style>
143     <Style x:Key="MyIntroTextBlockStyle" TargetType="{x:Type TextBlock}">
144       <Setter Property="TextBlock.FontFamily" Value="Verdana" />
145       <Setter Property="TextBlock.HorizontalAlignment" Value="Left" />
146       <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
147       <Setter Property="TextBlock.FontWeight" Value="Normal" />
148       <Setter Property="TextBlock.MaxWidth" Value="500" />
149       <Setter Property="TextBlock.Margin" Value="20" />
150     </Style>
154     <Style TargetType="{x:Type Viewport3D}">
155       <Setter Property="IsHitTestVisible" Value="False" />
156     </Style>
160     <Style TargetType="{x:Type Button}" x:Key="GelButtonStyle">
163       <Setter Property="Button.MinWidth" Value="120" />
164       <Setter Property="Button.Background" Value="#330033FF" />
167       <Setter Property="Template">
168         <Setter.Value>
169           <ControlTemplate TargetType="{x:Type Button}">
171             <StackPanel Background="Transparent">
172               <Grid x:Name="mainPanel" RenderTransformOrigin="0.5,0.5">
173                 <Grid x:Name="decorativeGrid" Background="Transparent" 
174                   VerticalAlignment="Stretch"
175                   RenderTransformOrigin="0.5,0.5">
176                   <Grid.ColumnDefinitions>
177                     <ColumnDefinition Width="Auto"/>
178                     <ColumnDefinition Width="*" />
179                     <ColumnDefinition Width="Auto" />
180                   </Grid.ColumnDefinitions>
181                   <Grid.RowDefinitions>
182                     <RowDefinition Height="5" />
183                     <RowDefinition Height="*" />
184                     <RowDefinition Height="5" />
185                   </Grid.RowDefinitions>
187                   <Rectangle x:Name="backgroundRectangle"
188                    Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3"
189                    RadiusX="5" RadiusY="5"
190                    HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
191                    Fill="White" />
193                   <Rectangle x:Name="userBackgroundRectangle"
194                     Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3"
195                     RadiusX="5" RadiusY="5"
196                     HorizontalAlignment="Stretch" 
197                     VerticalAlignment="Stretch"
198                     Fill="{TemplateBinding Background}" />
200                   <Rectangle Grid.Row="0" Grid.Column="0" Grid.RowSpan="3"
201                     RadiusX="5" RadiusY="5"
202                     Width="5" HorizontalAlignment="Left">
203                     <Rectangle.Fill>
204                       <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
205                         <LinearGradientBrush.GradientStops>
206                           <GradientStop Offset="0.0" Color="Gray" />
207                           <GradientStop Offset="1.0" Color="Transparent" />
208                         </LinearGradientBrush.GradientStops>
209                       </LinearGradientBrush>
210                     </Rectangle.Fill>
211                   </Rectangle>
213                   <Rectangle Grid.Row="0" Grid.Column="2" Grid.RowSpan="3"
214                     RadiusX="5" RadiusY="5"
215                     Width="5" HorizontalAlignment="Right">
216                     <Rectangle.Fill>
217                       <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
218                         <LinearGradientBrush.GradientStops>
219                           <GradientStop Offset="0.0" Color="Transparent" />
220                           <GradientStop Offset="1.0" Color="Gray" />
221                         </LinearGradientBrush.GradientStops>
222                       </LinearGradientBrush>
223                     </Rectangle.Fill>
224                   </Rectangle>
226                   <Rectangle x:Name="glassRectangle"
227                     Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3"
228                     RadiusX="5" RadiusY="5"
229                     Stroke="Gray" StrokeThickness="1"
230                     HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
231                     <Rectangle.OpacityMask>
232                       <RadialGradientBrush>
233                         <RadialGradientBrush.GradientStops>
234                           <GradientStop Offset="0.0" Color="Transparent" />
235                           <GradientStop Offset="1.0" Color="Black" />
236                         </RadialGradientBrush.GradientStops>
237                       </RadialGradientBrush>
238                     </Rectangle.OpacityMask>
240                     <Rectangle.Fill>
241                       <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" Opacity="0.5">
242                         <LinearGradientBrush.GradientStops>
243                           <GradientStop Offset="0.0" Color="White" />
244                           <GradientStop Offset="0.45" Color="Transparent" />
245                           <GradientStop Offset="0.51" Color="#99000000" />
246                           <GradientStop Offset="0.9" Color="#99FFFFFF" />
247                           <GradientStop Offset="1" Color="#FFFFFFFF" />
248                         </LinearGradientBrush.GradientStops>
249                       </LinearGradientBrush>
250                     </Rectangle.Fill>
251                   </Rectangle>
253                   <Rectangle Height="10" Margin="3" Grid.Column="1" Grid.Row="0" Grid.RowSpan="3" 
254                     VerticalAlignment="Top" HorizontalAlignment="Stretch"
255                     RadiusX="5" RadiusY="5">
256                     <Rectangle.Fill>
257                       <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
258                         <LinearGradientBrush.GradientStops>
259                           <GradientStop Offset="0.0" Color="#99FFFFFF" />
260                           <GradientStop Offset="1.0" Color="Transparent" />
261                         </LinearGradientBrush.GradientStops>
262                       </LinearGradientBrush>
263                     </Rectangle.Fill>
265                   </Rectangle>
269                   <Grid.RenderTransform>
270                     <TransformGroup>
271                       <ScaleTransform />
272                       <RotateTransform />
273                     </TransformGroup>
274                   </Grid.RenderTransform>
275                 </Grid>
276                 <ContentPresenter x:Name="myContentPresenter" 
277                   Grid.Row="1" Grid.Column="1"
278                   VerticalAlignment="Center" HorizontalAlignment="Center" 
279           Margin="10" Content="{TemplateBinding Content}" />
281                 <Grid.RenderTransform>
282                   <TransformGroup>
283                     <ScaleTransform />
284                     <RotateTransform />
285                   </TransformGroup>
286                 </Grid.RenderTransform>
287               </Grid>
288             </StackPanel>
290             <ControlTemplate.Triggers>
291               <EventTrigger RoutedEvent="Mouse.MouseEnter">
292                 <EventTrigger.Actions>
293                   <BeginStoryboard Name="mouseEnterBeginStoryboard" HandoffBehavior="Compose">
294                     <Storyboard FillBehavior="Stop">
295                       <DoubleAnimation Storyboard.TargetName="userBackgroundRectangle" Storyboard.TargetProperty="(Rectangle.Fill).(Brush.Opacity)"
296                         To="0" Duration="0:0:0.1" FillBehavior="HoldEnd" />
297                       <DoubleAnimation Storyboard.TargetName="userBackgroundRectangle" 
298                         Storyboard.TargetProperty="(Rectangle.Fill).(Brush.Opacity)"
299                         BeginTime="0:0:0.1" To="0.5" Duration="0:0:1" AutoReverse="True" 
300                         RepeatBehavior="Forever" />
301                       <DoubleAnimation Storyboard.TargetName="decorativeGrid" 
302                         Storyboard.TargetProperty="(Grid.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
303                          By="-0.05" Duration="0:0:0.5" AutoReverse="True" 
304                         RepeatBehavior="Forever" />
305                       <DoubleAnimation Storyboard.TargetName="decorativeGrid" 
306                         Storyboard.TargetProperty="(Grid.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"
307                           By="-0.05" Duration="0:0:0.5" AutoReverse="True" 
308                         RepeatBehavior="Forever" />
309                     </Storyboard>
310                   </BeginStoryboard>
311                 </EventTrigger.Actions>
312               </EventTrigger>
314               <EventTrigger RoutedEvent="Mouse.MouseLeave">
315                 <EventTrigger.Actions>
316                   <StopStoryboard BeginStoryboardName="mouseEnterBeginStoryboard" />
317                 </EventTrigger.Actions>
318               </EventTrigger>
320               <EventTrigger RoutedEvent="ButtonBase.Click">
321                 <EventTrigger.Actions>
322                   <BeginStoryboard>
323                     <Storyboard>
324                       <ColorAnimation 
325                         Storyboard.TargetName="backgroundRectangle" 
326                         Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)"
327                         To="Lime" Duration="0:0:0.05" AutoReverse="True"  RepeatBehavior="3x" />
328                       <DoubleAnimation 
329                         Storyboard.TargetName="mainPanel" 
330                         Storyboard.TargetProperty="(Grid.RenderTransform).(TransformGroup.Children)[1].(RotateTransform.Angle)"
331                          From="0" To="360" Duration="0:0:0.5" />
332                       <DoubleAnimation 
333                         Storyboard.TargetName="mainPanel" 
334                         Storyboard.TargetProperty="(Grid.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
335                          From="1" To="0.25" Duration="0:0:0.25" AutoReverse="True"  />
336                       <DoubleAnimation 
337                         Storyboard.TargetName="mainPanel" 
338                         Storyboard.TargetProperty="(Grid.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"
339                          From="1" To="0.25" Duration="0:0:0.25" AutoReverse="True"  />
340                     </Storyboard>
341                   </BeginStoryboard>
342                 </EventTrigger.Actions>
343               </EventTrigger>
344             </ControlTemplate.Triggers>
346           </ControlTemplate>
347         </Setter.Value>
348       </Setter>
349     </Style>
351     <Style TargetType="{x:Type RadioButton}" x:Key="GlassRadioButtonStyle">
353       <Setter Property="Margin" Value="1" />
354       <Setter Property="Background">
355         <Setter.Value>
357           <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
358             <LinearGradientBrush.GradientStops>
359               <GradientStop Offset="0.0" Color="#CCCCFF" />
360               <GradientStop Offset="1.0" Color="DarkGray" />
361             </LinearGradientBrush.GradientStops>
362           </LinearGradientBrush>
364         </Setter.Value>
365       </Setter>
367       <Setter Property="Template">
368         <Setter.Value>
369           <ControlTemplate TargetType="{x:Type RadioButton}">
370             <Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" 
371               ClipToBounds="true">
372               
373               
374               <Rectangle x:Name="outerRectangle" 
375                 HorizontalAlignment="Stretch" 
376                 VerticalAlignment="Stretch" 
377                 Stroke="{TemplateBinding Background}" 
378                 StrokeThickness="1" Fill="Transparent" />
379               
380               <Rectangle x:Name="glassCube" HorizontalAlignment="Stretch" 
381                 VerticalAlignment="Stretch"
382                 StrokeThickness="2" RadiusX="10" RadiusY="10" Opacity="0" 
383                 Fill="{StaticResource MyGlassBrushResource}"
384                 RenderTransformOrigin="0.5,0.5"
385                 >
386                 <Rectangle.Stroke>
387                   <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
388                     <LinearGradientBrush.GradientStops>
389                       <GradientStop Offset="0.0" Color="LightBlue" />
390                       <GradientStop Offset="1.0" Color="Gray" />
391                     </LinearGradientBrush.GradientStops>
392                   </LinearGradientBrush>
393                 </Rectangle.Stroke>
394                 <Rectangle.RenderTransform>
395                   <TransformGroup>
396                     <ScaleTransform x:Name="cubeScaleTransform" />
397                     <RotateTransform x:Name="cubeRotateTransform" />
398                   </TransformGroup>
399                 </Rectangle.RenderTransform>
400               </Rectangle>
401               
402           
403               <DockPanel Margin="10">
404                 
405                 <Viewbox Stretch="Uniform">
406                   <ContentPresenter x:Name="myContentPresenter"  
407                     Content="{TemplateBinding  Content}" 
408                     TextBlock.Foreground="Black" />
409                 </Viewbox>
410                 
411               </DockPanel>
412               <Rectangle Fill="Transparent" /> 
413             </Grid>
416             <ControlTemplate.Triggers>
417               <MultiTrigger>
418                 <MultiTrigger.Conditions>
419                   <Condition Property="IsMouseOver" Value="true" />
420                   <Condition Property="IsChecked" Value="false" />
421                 </MultiTrigger.Conditions>
422                 <Setter Property ="Rectangle.Stroke" Value="Black" TargetName="outerRectangle" />
423                 <Setter Property="Rectangle.Opacity" Value="1" TargetName="glassCube" />
424               </MultiTrigger>
425               <Trigger Property="IsChecked" Value="true">
426                 <Setter Property="Rectangle.Opacity" Value="1" TargetName="glassCube" />
427               </Trigger>
428               <Trigger Property="IsFocused" Value="true">
429                 <Setter Property="Rectangle.Stroke" Value="Black" TargetName="outerRectangle" />
430                 <Setter Property="Rectangle.Opacity" Value="1" TargetName="glassCube" />
431               </Trigger>
432               <EventTrigger RoutedEvent="Mouse.MouseEnter">
433                 <EventTrigger.Actions>
434                   <BeginStoryboard Name="mouseEnterBeginStoryboard">
435                     <Storyboard>
436                       <DoubleAnimation
437                         Storyboard.TargetName="cubeScaleTransform"
438                         Storyboard.TargetProperty="ScaleX"
439                         By="-0.1" Duration="0:0:0.5" />
440                       <DoubleAnimation
441                         Storyboard.TargetName="cubeScaleTransform"
442                         Storyboard.TargetProperty="ScaleY"
443                         By="-0.1" Duration="0:0:0.5" />
444                     </Storyboard>
445                   </BeginStoryboard>
446                 </EventTrigger.Actions>
447               </EventTrigger>
448               <EventTrigger RoutedEvent="Mouse.MouseLeave">
449                 <EventTrigger.Actions>
450                   <StopStoryboard BeginStoryboardName="mouseEnterBeginStoryboard" />
451                 </EventTrigger.Actions>
452               </EventTrigger>
453               <EventTrigger RoutedEvent="RadioButton.Checked">
454                 <EventTrigger.Actions>
455                   <BeginStoryboard>
456                     <Storyboard>
457                       <DoubleAnimation
458                         Storyboard.TargetName="cubeRotateTransform"
459                         Storyboard.TargetProperty="Angle"
460                         By="360" Duration="0:0:0.5" />
461                     </Storyboard>
462                   </BeginStoryboard>
463                 </EventTrigger.Actions>
464               </EventTrigger>
465             </ControlTemplate.Triggers>
466           </ControlTemplate>
467         </Setter.Value>
468       </Setter>
469     </Style>
474     <!-- 3D Models -->
475     <MeshGeometry3D x:Key="CubeSide01"
476       TriangleIndices="0,1,2 3,4,5 "
477       Normals="-1,0,0 -1,0,0 -1,0,0 -1,0,0 -1,0,0 -1,0,0 "
478       TextureCoordinates="0,1 0,0 1,0 1,0 1,1 0,1 "
479       Positions="-0.5,0.5,-0.5 -0.5,-0.5,-0.5 -0.5,-0.5,0.5 -0.5,-0.5,0.5 -0.5,0.5,0.5 -0.5,0.5,-0.5 " />
481     <MeshGeometry3D x:Key="CubeSide02"
482       TriangleIndices="0,1,2 3,4,5 "
483       Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
484       TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 "
485       Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
487     <MeshGeometry3D x:Key="CubeSide03"
488       TriangleIndices="0,1,2 3,4,5 "
489       Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
490       TextureCoordinates="1,0 1,1 0,1 0,1 0,0 1,0 "
491       Positions="0.5,-0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,0.5 0.5,0.5,0.5 0.5,-0.5,0.5 0.5,-0.5,-0.5 " />
493     <MeshGeometry3D x:Key="CubeSide04"
494       TriangleIndices="0,1,2 3,4,5 "
495       Normals="1,0,0 1,0,0 1,0,0 1,0,0 1,0,0 1,0,0 "
496       TextureCoordinates="1,0 1,1 0,1 0,1 0,0 1,0 "
497       Positions="-0.5,-0.5,-0.5 -0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,0.5,-0.5 0.5,-0.5,-0.5 -0.5,-0.5,-0.5 " />
499     <MeshGeometry3D x:Key="CubeSide05"
500       TriangleIndices="0,1,2 3,4,5 6,7,8 9,10,11 "
501       Normals="0,-1,0 0,-1,0 0,-1,0 0,-1,0 0,-1,0 0,-1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 "
502       TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 1,1 0,1 0,0 0,0 1,0 1,1 "
503       Positions="-0.5,-0.5,-0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5   0.5,-0.5,0.5 -0.5,-0.5,-0.5 -0.5,0.5,-0.5   
504                           0.5,0.5,-0.5 -0.5,0.5,-0.5 -0.5,0.5,0.5  -0.5,0.5,0.5 0.5,0.5,0.5 0.5,0.5,-0.5 " />
506     <MeshGeometry3D x:Key="CubeSide06"
507       TriangleIndices="0,1,2 3,4,5 6,7,8 9,10,11 "
508       Normals="-1,0,0 -1,0,0 -1,0,0 -1,0,0 -1,0,0 -1,0,0 "
509       TextureCoordinates="1,0 1,1 0,1 0,1 0,0 1,0 "
510       Positions="-0.5,-0.5,0.5 -0.5,-0.5,-0.5 0.5,-0.5,-0.5   0.5,-0.5,-0.5 0.5,-0.5,0.5 -0.5,-0.5,0.5" />
512     <!-- 3D Materials -->
513     <MaterialGroup x:Key="LeavesMaterial1">
514       <DiffuseMaterial>
515         <DiffuseMaterial.Brush>
516           <ImageBrush Stretch="UniformToFill" ImageSource="sample_images\leaves_closeup.png" TileMode="None" ViewportUnits="Absolute" Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
517         </DiffuseMaterial.Brush>
518       </DiffuseMaterial>
519       <SpecularMaterial SpecularPower="85.3333">
520         <SpecularMaterial.Brush>
521           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
522         </SpecularMaterial.Brush>
523       </SpecularMaterial>
524     </MaterialGroup>
526     <MaterialGroup x:Key="RocksMaterial">
527       <DiffuseMaterial>
528         <DiffuseMaterial.Brush>
529           <ImageBrush Stretch="UniformToFill" ImageSource="sample_images\rocks.png" TileMode="None" ViewportUnits="Absolute" Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
530         </DiffuseMaterial.Brush>
531       </DiffuseMaterial>
532       <SpecularMaterial SpecularPower="85.3333">
533         <SpecularMaterial.Brush>
534           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
535         </SpecularMaterial.Brush>
536       </SpecularMaterial>
537     </MaterialGroup>
539     <MaterialGroup x:Key="BranchesMaterial">
540       <DiffuseMaterial>
541         <DiffuseMaterial.Brush>
542           <ImageBrush Stretch="UniformToFill" ImageSource="sample_images\branches.png" TileMode="None" ViewportUnits="Absolute" Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
543         </DiffuseMaterial.Brush>
544       </DiffuseMaterial>
545       <SpecularMaterial SpecularPower="85.3333">
546         <SpecularMaterial.Brush>
547           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
548         </SpecularMaterial.Brush>
549       </SpecularMaterial>
550     </MaterialGroup>
551     <MaterialGroup x:Key="BerriesMaterial">
552       <DiffuseMaterial>
553         <DiffuseMaterial.Brush>
554           <ImageBrush Stretch="UniformToFill" ImageSource="sample_images\berries.jpg" TileMode="None" ViewportUnits="Absolute" Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
555         </DiffuseMaterial.Brush>
556       </DiffuseMaterial>
557       <SpecularMaterial SpecularPower="85.3333">
558         <SpecularMaterial.Brush>
559           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
560         </SpecularMaterial.Brush>
561       </SpecularMaterial>
562     </MaterialGroup>
563     <MaterialGroup x:Key="FlowersMaterial">
564       <DiffuseMaterial>
565         <DiffuseMaterial.Brush>
566           <ImageBrush Stretch="UniformToFill" ImageSource="sample_images\Waterlilies.png" ViewportUnits="Absolute" 
567             Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
568         </DiffuseMaterial.Brush>
569       </DiffuseMaterial>
570       <SpecularMaterial SpecularPower="85.3333">
571         <SpecularMaterial.Brush>
572           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
573         </SpecularMaterial.Brush>
574       </SpecularMaterial>
575     </MaterialGroup>
576     <MaterialGroup x:Key="SunsetMaterial">
577       <DiffuseMaterial>
578         <DiffuseMaterial.Brush>
579           <ImageBrush Stretch="UniformToFill" ImageSource="sample_images\Sunset.jpg" ViewportUnits="Absolute" 
580             Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
581         </DiffuseMaterial.Brush>
582       </DiffuseMaterial>
583       <SpecularMaterial SpecularPower="85.3333">
584         <SpecularMaterial.Brush>
585           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
586         </SpecularMaterial.Brush>
587       </SpecularMaterial>
588     </MaterialGroup>
589     <MaterialGroup x:Key="SolidColorMaterial">
590       <DiffuseMaterial>
591         <DiffuseMaterial.Brush>
592           <SolidColorBrush Color="Orange" Opacity="1.000000"/>
593         </DiffuseMaterial.Brush>
594       </DiffuseMaterial>
595       <SpecularMaterial SpecularPower="85.3333">
596         <SpecularMaterial.Brush>
597           <SolidColorBrush Color="#FFFFFF" Opacity="1.000000"/>
598         </SpecularMaterial.Brush>
599       </SpecularMaterial>
600     </MaterialGroup>
603     <!-- Model3DVisuals -->
604     <ModelVisual3D x:Key="PictureCubeModelVisual3DResource" x:Shared="False">
605       <ModelVisual3D.Children>
606         <ModelVisual3D>
607           <ModelVisual3D.Content>
608             <AmbientLight Color="#333333" />
609           </ModelVisual3D.Content>
610         </ModelVisual3D>
611         <ModelVisual3D>
612           <ModelVisual3D.Content>
613             <DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
614           </ModelVisual3D.Content>
615         </ModelVisual3D>
616         <ModelVisual3D>
617           <ModelVisual3D.Content>
618             <DirectionalLight Color="#FFFFFF" Direction="0.612372,-0.5,-0.612372" />
619           </ModelVisual3D.Content>
620         </ModelVisual3D>
621         <ModelVisual3D>
622           <ModelVisual3D.Content>
623             <GeometryModel3D Geometry="{StaticResource CubeSide01}" Material="{StaticResource BranchesMaterial}"/>
624           </ModelVisual3D.Content>
625         </ModelVisual3D>
626         <ModelVisual3D>
627           <ModelVisual3D.Content>
628             <GeometryModel3D Geometry="{StaticResource CubeSide02}" Material="{StaticResource FlowersMaterial}"/>
629           </ModelVisual3D.Content>
630         </ModelVisual3D>
631         <ModelVisual3D>
632           <ModelVisual3D.Content>
633             <GeometryModel3D Geometry="{StaticResource CubeSide03}" Material="{StaticResource BerriesMaterial}"/>
634           </ModelVisual3D.Content>
635         </ModelVisual3D>
636         <ModelVisual3D>
637           <ModelVisual3D.Content>
638             <GeometryModel3D Geometry="{StaticResource CubeSide04}" Material="{StaticResource LeavesMaterial1}"/>
639           </ModelVisual3D.Content>
640         </ModelVisual3D>
641         <ModelVisual3D>
642           <ModelVisual3D.Content>
643             <GeometryModel3D Geometry="{StaticResource CubeSide05}" Material="{StaticResource RocksMaterial}"/>
644           </ModelVisual3D.Content>
645         </ModelVisual3D>
646         <ModelVisual3D>
647           <ModelVisual3D.Content>
648             <GeometryModel3D Geometry="{StaticResource CubeSide06}" Material="{StaticResource SunsetMaterial}"/>
649           </ModelVisual3D.Content>
650         </ModelVisual3D>
651       </ModelVisual3D.Children>
652     </ModelVisual3D>
654   </Application.Resources>
655 </Application>