<Grid
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006"
mc:Ignorable="d"
x:Name="DocumentRoot"
Width="640" Height="480">
<Grid.Resources>
<Storyboard x:Key="OnLoaded"/>
<DrawingBrush x:Key="BallBrush">
<DrawingBrush.Drawing>
<GeometryDrawing Geometry="F1 M87.321289,43.910645 C87.321289,67.885742 67.885742,87.321289 43.910645,87.321289 19.935547,87.321289 0.5,67.885742 0.5,43.910645 0.5,19.935547 19.935547,0.5 43.910645,0.5 67.885742,0.5 87.321289,19.935547 87.321289,43.910645 z">
<GeometryDrawing.Brush>
<RadialGradientBrush GradientOrigin="0.326563,0.170462" Center="0.326563,0.170462" RadiusX="0.807431" RadiusY="0.807431">
<RadialGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFFFB71E" Offset="1"/>
</GradientStopCollection>
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</GeometryDrawing.Brush>
<GeometryDrawing.Pen>
<Pen Brush="#FF000000" Thickness="1" StartLineCap="Flat" EndLineCap="Flat" DashCap="Flat" LineJoin="Miter" MiterLimit="1"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
<Storyboard x:Key="Bounce" d:StoryboardName="Bounce">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleY)" Storyboard.TargetName="MyBall">
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.32075471698113206" KeyTime="00:00:00"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.79245283018867929" KeyTime="00:00:01"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.79245283018867929" KeyTime="00:00:01.6670000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.62264150943396224" KeyTime="00:00:01.7080000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.86792452830188649" KeyTime="00:00:01.9170000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.86792452830188649" KeyTime="00:00:02.6250000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.75471698113207475" KeyTime="00:00:02.7080000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.86792452830188427" KeyTime="00:00:02.8330000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.86792452830188427" KeyTime="00:00:03.2500000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0.094339622641503681" KeyTime="00:00:03.2920000"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[5].(TranslateTransform.Y)" Storyboard.TargetName="MyBall">
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="36.000000000000007" KeyTime="00:00:00"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="-329" KeyTime="00:00:01"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="13.000000000000004" KeyTime="00:00:01.6670000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="22.000000000000011" KeyTime="00:00:01.7080000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="-14.99999999999997" KeyTime="00:00:01.9170000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="-178.99999999999997" KeyTime="00:00:02.2500000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="7.0000000000000426" KeyTime="00:00:02.6250000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="13.000000000000068" KeyTime="00:00:02.7080000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="-10.999999999999808" KeyTime="00:00:02.8330000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="-52.999999999999808" KeyTime="00:00:03.0420000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="9.0000000000002345" KeyTime="00:00:03.2500000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="50.000000000000405" KeyTime="00:00:03.2920000"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[5].(TranslateTransform.X)" Storyboard.TargetName="MyBall">
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:00"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:01"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:01.6670000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:01.7080000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:01.9170000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:02.2500000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:02.6250000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:02.7080000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:02.8330000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:03.0420000"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="0" KeyTime="00:00:03.2500000"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleX)" Storyboard.TargetName="MyBall">
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="1" KeyTime="00:00:00"/>
<SplineDoubleKeyFrame d:KeyEase="Linear;Linear;0.5;0.5;0.5;0.5" KeySpline="0.5,0.5,0.5,0.5" Value="1" KeyTime="00:00:01"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Grid.Resources>
<Grid.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard x:Name="OnLoaded_BeginStoryboard" Storyboard="{DynamicResource OnLoaded}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseDown" SourceName="MyBall">
<BeginStoryboard Storyboard="{StaticResource Bounce}" x:Name="Bounce_BeginStoryboard"/>
</EventTrigger>
</Grid.Triggers>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.Background>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<TranslateTransform X="-0.5" Y="-0.5"/>
<ScaleTransform ScaleX="0.86167523740788909" ScaleY="0.86167523740788909"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="89.773330815819847"/>
<TranslateTransform X="0.5" Y="0.5"/>
<TranslateTransform X="0.0058421087130624046" Y="0.056684184040439484"/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="sc#1, 0.7113122, 0.7621822, 0.8739461" Offset="0"/>
<GradientStop Color="sc#1, 0, 0.06251762, 0.199871719" Offset="1"/>
<GradientStop Color="#FF56BAFF" Offset="0.66025641025641024"/>
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Grid.Background>
<Canvas Grid.Row="0" x:Name="BallArea" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<Rectangle Margin="197,132,0,0" Width="106" Height="106" x:Name="MyBall" RenderTransformOrigin="0.5,0.5" Fill="{DynamicResource BallBrush}" Canvas.Left="59" Canvas.Top="120" ToolTip="Click me!">
<Rectangle.RenderTransform>
<TransformGroup>
<TranslateTransform X="0" Y="0"/>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
<Label FontWeight="Bold" Width="272" Height="28" x:Name="Label" RenderTransformOrigin="0.5,0.5" Canvas.Left="-1" Canvas.Top="342" Content="Click the orange ball to start it bouncing." Foreground="sc#1, 1, 1, 1"/>
</Canvas>
<Canvas Grid.Row="1"
Height="{Binding Path=(Canvas.ActualHeight), ElementName=BallArea}"
Width="{Binding Path=(Canvas.ActualWidth), ElementName=BallArea}" ClipToBounds="True" x:Name="ReflectingCanvas">
<Canvas.Background>
<VisualBrush x:Name="myVisualBrush" ViewboxUnits="Absolute"
Stretch="None" AlignmentX="Left" AlignmentY="Top"
Opacity="0.50" Visual="{Binding ElementName=BallArea}">
<VisualBrush.RelativeTransform>
<TransformGroup>
<MatrixTransform Matrix="1,0,0,-1,0,0" />
<TranslateTransform Y="1" />
</TransformGroup>
</VisualBrush.RelativeTransform>
</VisualBrush>
</Canvas.Background>
<Canvas.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FF000000" Offset="0.0" />
<GradientStop Color="#00000000" Offset="0.5" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Canvas.OpacityMask>
</Canvas>
</Grid>