Timeline.DecelerationRatio Property
Gets or sets a value specifying the percentage of the timeline's Duration spent decelerating the passage of time from its maximum rate to zero.
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 DecelerationRatio="double" .../>
Property Value
Type: System.DoubleA value between 0 and 1, inclusive, that specifies the percentage of the timeline's Duration spent decelerating the passage of time from its maximum rate to zero. If the timeline's AccelerationRatio property is also set, the sum of DecelerationRatio and AccelerationRatio must be less than or equal to 1. The default value is 0.
| Exception | Condition |
|---|---|
| ArgumentException |
DecelerationRatio is less than 0 or greater than 1. |
| InvalidOperationException |
The sum of AccelerationRatio and DecelerationRatio exceeds 1. |
Use the DecelerationRatio property to create animations that slow down before stopping. The DecelerationRatio 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 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.