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 Int64AnimationBase, 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.)

<!-- This example shows how to use the DoubleAnimationUsingKeyFrames to create
an animation on the Canvas.Left attached property of a rectangle. --><Pagexmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Name="myRootElement"WindowTitle="KeyFrame Animations"><!-- Key frame animations enable you to create complex animations by specifying multiple destination values
and controlling the animation's interpolation method. --><Canvas><!-- The position of this rectangle is animated using a key frame animation. --><RectangleName="myRectangle"Canvas.Top="100"Canvas.Left="10"Height="100"Width="100"Stroke="Black"StrokeThickness="5"><Rectangle.Triggers><EventTriggerRoutedEvent="Rectangle.Loaded"><BeginStoryboard><StoryboardRepeatBehavior="Forever"><!-- Animate Canvas.Left attached property using 3 KeyFrames which animates
the rectangle along a path. This animation repeats indefinitely. --><DoubleAnimationUsingKeyFramesStoryboard.TargetName="myRectangle"Storyboard.TargetProperty="(Canvas.Left)"><DoubleAnimationUsingKeyFrames.KeyFrames><!-- Using a LinearDoubleKeyFrame, the rectangle moves steadily from its
starting position to 500 over the first 3 seconds. --><LinearDoubleKeyFrameValue="500"KeyTime="0:0:3"/><!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly appears at 500 after
the fourth second of the animation. --><DiscreteDoubleKeyFrameValue="400"KeyTime="0:0:4"/><!-- Using a SplineDoubleKeyFrame, the rectangle moves back to its starting point. The
animation starts out slowly at first and then speeds up. This KeyFrame ends after the 6th
second. --><SplineDoubleKeyFrameKeySpline="0.6,0.0 0.9,0.00"Value="10"KeyTime="0:0:6"/></DoubleAnimationUsingKeyFrames.KeyFrames></DoubleAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger></Rectangle.Triggers></Rectangle></Canvas></Page>