ObjectAnimationUsingKeyFrames Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Animates the value of an Object property along a set of KeyFrames over a specified Duration.
System.Windows::DependencyObject
System.Windows.Media.Animation::Timeline
System.Windows.Media.Animation::ObjectAnimationUsingKeyFrames
Assembly: System.Windows (in System.Windows.dll)
XMLNS for XAML: Not mapped to an xmlns.
The ObjectAnimationUsingKeyFrames type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ObjectAnimationUsingKeyFrames | Initializes a new instance of the ObjectAnimationUsingKeyFrames class. |
| Name | Description | |
|---|---|---|
![]() | AutoReverse | Gets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Inherited from Timeline.) |
![]() | BeginTime | Gets or sets the time at which this Timeline should begin. (Inherited from Timeline.) |
![]() | Dispatcher | Gets the Dispatcher this object is associated with. (Inherited from DependencyObject.) |
![]() | Duration | Gets or sets the length of time for which this timeline plays, not counting repetitions. (Inherited from Timeline.) |
![]() | FillBehavior | Gets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (Inherited from Timeline.) |
![]() | KeyFrames | Gets the collection of ObjectKeyFrame objects that define the animation. |
![]() | RepeatBehavior | Gets or sets the repeating behavior of this timeline. (Inherited from Timeline.) |
![]() | SpeedRatio | Gets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Inherited from Timeline.) |
| Name | Description | |
|---|---|---|
![]() | CheckAccess | Determines whether the calling thread has access to this object. (Inherited from DependencyObject.) |
![]() | ClearValue | Clears the local value of a dependency property. (Inherited from DependencyObject.) |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetAnimationBaseValue | Returns any base value established for a Windows Phone dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetValue | Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ReadLocalValue | Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.) |
![]() | SetValue | Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() | Completed | Occurs when the Storyboard object has completed playing. (Inherited from Timeline.) |
Note: |
|---|
Only discrete interpolation (DiscreteObjectKeyFrame) is available for use with ObjectAnimationUsingKeyFrames, which swaps object values according to a specified timeline. Other types of interpolation are too problematic to apply to objects. |
The following example uses the ObjectAnimationUsingKeyFrames class to animate the Fill property of a Rectangle. This animation uses two key frames in the following manner:
Using a DiscreteObjectKeyFrame, the Fill property of the Rectangle suddenly changes to a LinearGradientBrush after the first two seconds of the animation.
After the third second of the animation, the Fill property is suddenly changed to a different LinearGradientBrush, which remains until the end of the animation (4 seconds total).
<StackPanel> <StackPanel.Resources> <Storyboard x:Name="myStoryboard"> <!-- ObjectAnimationUsingKeyFrames is used to animate properties that take an object as a value. This animation lasts for 4 seconds using 3 KeyFrames which swap different brush objects at regular intervals, making the background of the Page change. --> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="animatedRectangle" Storyboard.TargetProperty="Fill" Duration="0:0:4" RepeatBehavior="Forever"> <ObjectAnimationUsingKeyFrames.KeyFrames> <!-- Note: Only discrete interpolation (DiscreteObjectKeyFrame) is available for use with ObjectAnimationUsingKeyFrames which merely swaps objects according to a specified timeline. Other types of interpolation are too problematic to apply to objects. --> <!-- Using a DiscreteObjectKeyFrame, the Fill property of the Rectangle suddenly changes to a LinearGradientBrush after the first two seconds of the animation. --> <DiscreteObjectKeyFrame KeyTime="0:0:2"> <DiscreteObjectKeyFrame.Value> <LinearGradientBrush> <LinearGradientBrush.GradientStops> <GradientStop Color="Yellow" Offset="0.0" /> <GradientStop Color="Orange" Offset="0.5" /> <GradientStop Color="Red" Offset="1.0" /> </LinearGradientBrush.GradientStops> </LinearGradientBrush> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> <!-- After the third second of the animation, the Fill property is suddenly changed to a different LinearGradientBrush which remains until the end of the animation (4 seconds total). --> <DiscreteObjectKeyFrame KeyTime="0:0:3"> <DiscreteObjectKeyFrame.Value> <RadialGradientBrush GradientOrigin="0.75,0.25"> <RadialGradientBrush.GradientStops> <GradientStop Color="White" Offset="0.0" /> <GradientStop Color="MediumBlue" Offset="0.5" /> <GradientStop Color="Black" Offset="1.0" /> </RadialGradientBrush.GradientStops> </RadialGradientBrush> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> </Storyboard> </StackPanel.Resources> <!-- The Fill property of this rectangle is animated. --> <Rectangle x:Name="animatedRectangle" Loaded="Rectangle_Loaded" Width="300" Height="300" /> </StackPanel>




Note: