Timeline.AccelerationRatio Property
Gets or sets a value specifying the percentage of the timeline's Duration spent accelerating the passage of time from zero to its maximum rate.
Namespace: System.Windows.Media.Animation
Assembly: PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
<object AccelerationRatio="double" .../>
Property Value
Type: System.DoubleA value between 0 and 1, inclusive, that specifies the percentage of the timeline's Duration spent accelerating the passage of time from zero to its maximum rate. If the timeline's DecelerationRatio property is also set, the sum of AccelerationRatio and DecelerationRatio must be less than or equal to 1. The default value is 0.
| Exception | Condition |
|---|---|
| ArgumentException | AccelerationRatio is less than 0 or greater than 1. |
| InvalidOperationException | The sum of AccelerationRatio and DecelerationRatio exceeds 1. |
Use the AccelerationRatio property to create animations that start slowly and then speed up as time progresses. The AccelerationRatio property is useful for creating ease-in effects or making movement seem more natural. Use the AccelerationRatio and DecelerationRatio properties together to create animations that that start slowly, speed up, and then slow down again before finishing.
This example demonstrates how to make an animation accelerate and decelerate over time. In the following example, several rectangles are animated by animations with different AccelerationRatio and DecelerationRatio settings.
<!-- This example shows how to use the AccelerationRatio and DecelerationRatio properties of timelines to make animations speed up or slow down as they progress. --> <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:SampleControls="SampleControls" WindowTitle="Acceleration and Deceleration Example"> <StackPanel Margin="20"> <Rectangle Name="nonAcceleratedOrDeceleratedRectangle" Fill="#9933FF" Width="10" Height="20" HorizontalAlignment="Left" /> <Rectangle Name="acceleratedRectangle" Fill="#3333FF" Width="10" Height="20" HorizontalAlignment="Left" /> <Rectangle Name="deceleratedRectangle" Fill="#33FF66" Width="10" Height="20" HorizontalAlignment="Left" /> <Rectangle Name="acceleratedAndDeceleratedRectangle" Fill="#CCFF33" Width="10" Height="20" HorizontalAlignment="Left" /> <!-- Create a button to start the animations. --> <Button Margin="0,30,0,0" HorizontalAlignment="Left" Content="Start Animations"> <Button.Triggers> <EventTrigger RoutedEvent="Button.Click"> <BeginStoryboard> <Storyboard> <!-- Creates an animation without acceleration or deceleration for comparison. --> <DoubleAnimation Storyboard.TargetName="nonAcceleratedOrDeceleratedRectangle" Storyboard.TargetProperty="(Rectangle.Width)" Duration="0:0:10" From="20" To="400" /> <!-- Creates an animation that accelerates through 40% of its duration. --> <DoubleAnimation Storyboard.TargetName="acceleratedRectangle" Storyboard.TargetProperty="(Rectangle.Width)" AccelerationRatio="0.4" Duration="0:0:10" From="20" To="400" /> <!-- Creates an animation that decelerates through 60% of its duration. --> <DoubleAnimation Storyboard.TargetName="deceleratedRectangle" Storyboard.TargetProperty="(Rectangle.Width)" DecelerationRatio="0.6" Duration="0:0:10" From="20" To="400" /> <!-- Creates an animation that accelerates through 40% of its duration and decelerates through the 60% of its duration. --> <DoubleAnimation Storyboard.TargetName="acceleratedAndDeceleratedRectangle" Storyboard.TargetProperty="(Rectangle.Width)" AccelerationRatio="0.4" DecelerationRatio="0.6" Duration="0:0:10" From="20" To="400" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Button.Triggers> </Button> </StackPanel> </Page>
Code has been omitted from this example. For the complete code, see the Animation Timing Behavior Sample.
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.