You can create more realistic animation effects like acceleration and deceleration in Silverlight using keyframes, however, if you're going to do this by hand (as opposed to using a tool like Blend) you're going to have to use keysplines which are not immediately intuitive.
For example. Let's say you want to make the following effect:
Run this sample
See how the blue rectangle falls and then bounces? Here is the XAML code:
And here is the C#:
Ok, if you say so, but what are those numbers that the KeySpline attribute is using (e.g. KeySpline="0.10, 0.21 0.00, 1.0")? That attribute is defining a cubic Bezier curve. A cubic Bezier curve is defined by a start point, an end point, and two control points. The KeySpline property of a spline key frame defines the two control points of a Bezier curve that extends from (0,0) to (1,1). The first control point controls the curve factor of the first half of the Bezier curve, and the second control point controls the curve factor of the second half of the Bezier segment. The resulting curve describes the rate of change for that spline key frame. The steeper the curve, the faster the key frame changes its values. As the curve gets flatter, the key frame changes its values more slowly.
The best way to demonstrate a Bezier curve and its effect on interpolation is to show an example. In the example below you change the control points of the Bezier curve, see the effect, and copy down the desired control points for your own applications:
Run this sample.
Sam