Applies an animation to the specified DependencyProperty. The animation is started when the next frame is rendered. If the specified property is already animated, the SnapshotAndReplace handoff behavior is used. (Inherited from Animatable.)

Applies an animation to the specified DependencyProperty. The animation is started when the next frame is rendered. If the specified property is already animated, the specified HandoffBehavior is used. (Inherited from Animatable.)

Creates a modifiable clone of this RectAnimationBase, making deep copies of this object's values. When copying dependency properties, this method copies resource references and data bindings (but they might no longer resolve) but not animations or their current values.

Coerces the value of the specified dependency property. This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject. (Inherited from DependencyObject.)

Ensures that the Freezable is being accessed from a valid thread. Inheritors of Freezable must call this method at the beginning of any API that reads data members that are not dependency properties. (Inherited from Freezable.)

Raises the Changed event for the Freezable and invokes its OnChanged method. Classes that derive from Freezable should call this method at the end of any API that modifies class members that are not stored as dependency properties. (Inherited from Freezable.)

Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties. (Inherited from Freezable.)

<Pagexmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Name="myRootElement"WindowTitle="ThicknessAnimationUsingKeyFrames Example"><StackPanelOrientation="Vertical"HorizontalAlignment="Center"><PathStroke="Black"StrokeThickness="1"Fill="LemonChiffon"><Path.Data><RectangleGeometryx:Name="myRectangleGeometry"Rect="0,200,100,100"/></Path.Data><Path.Triggers><EventTriggerRoutedEvent="Path.Loaded"><BeginStoryboard><Storyboard><!-- Animate the Rect property of the RectangleGeometry which causes the
rectangle to animate its position as well as its width and height. --><RectAnimationUsingKeyFramesStoryboard.TargetName="myRectangleGeometry"Storyboard.TargetProperty="Rect"Duration="0:0:6"FillBehavior="HoldEnd"RepeatBehavior="Forever"><!-- Animate position, width, and height in first 2 seconds. LinearRectKeyFrame creates
a smooth, linear animation between values. --><LinearRectKeyFrameValue="600,50,200,50"KeyTime="0:0:2"/><!-- In the next half second, change height to 10. DiscreteRectKeyFrame creates a
sudden "jump" between values. --><DiscreteRectKeyFrameValue="600,50,200,10"KeyTime="0:0:2.5"/><!-- In the final 2 seconds of the animation, go back to the starting position, width, and height.
Spline key frames like SplineRectKeyFrame creates a variable transition between values depending
on the KeySpline property. In this example, the animation starts off slow but toward the end of
the time segment, it speeds up exponentially.--><SplineRectKeyFrameValue="0,200,100,100"KeyTime="0:0:4.5"KeySpline="0.6,0.0 0.9,0.00"/></RectAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger></Path.Triggers></Path></StackPanel></Page>