Export (0) Print
Expand All

DecimalAnimationUsingKeyFrames Class

Animates the value of a Decimal property along a set of KeyFrames.

Namespace:  System.Windows.Media.Animation
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[ContentPropertyAttribute(L"KeyFrames")]
public ref class DecimalAnimationUsingKeyFrames : public DecimalAnimationBase, 
	IKeyFrameAnimation, IAddChild
<DecimalAnimationUsingKeyFrames>
  KeyFrames
</DecimalAnimationUsingKeyFrames>

The DecimalAnimationUsingKeyFrames type exposes the following members.

  NameDescription
Public methodDecimalAnimationUsingKeyFramesInitializes a new instance of the DecimalAnimationUsingKeyFrames class.
Top

  NameDescription
Public propertyAccelerationRatioGets or sets a value specifying the percentage of the timeline's Duration spent accelerating the passage of time from zero to its maximum rate. (Inherited from Timeline.)
Public propertyAutoReverseGets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Inherited from Timeline.)
Public propertyBeginTimeGets or sets the time at which this Timeline should begin. (Inherited from Timeline.)
Public propertyCanFreezeGets a value that indicates whether the object can be made unmodifiable. (Inherited from Freezable.)
Public propertyDecelerationRatioGets or sets a value specifying the percentage of the timeline's Duration spent decelerating the passage of time from its maximum rate to zero. (Inherited from Timeline.)
Public propertyDependencyObjectTypeGets the DependencyObjectType that wraps the CLR type of this instance.  (Inherited from DependencyObject.)
Public propertyDispatcherGets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.)
Public propertyDurationGets or sets the length of time for which this timeline plays, not counting repetitions. (Inherited from Timeline.)
Public propertyFillBehaviorGets or sets a value that specifies how the Timeline behaves after it reaches the end of its active period. (Inherited from Timeline.)
Public propertyHasAnimatedPropertiesGets a value that indicates whether one or more AnimationClock objects is associated with any of this object's dependency properties. (Inherited from Animatable.)
Public propertyIsAdditiveGets a value that specifies whether the animation's output value is added to the base value of the property being animated.
Public propertyIsCumulativeGets or sets a value that specifies whether the animation's value accumulates when it repeats.
Public propertyIsDestinationDefaultGets a value that indicates whether this animation uses the defaultDestinationValue parameter of the GetCurrentValue method as its destination value. (Inherited from AnimationTimeline.)
Public propertyIsFrozenGets a value that indicates whether the object is currently modifiable. (Inherited from Freezable.)
Public propertyIsSealedGets a value that indicates whether this instance is currently sealed (read-only). (Inherited from DependencyObject.)
Public propertyKeyFrames Gets or sets the collection of DecimalKeyFrame objects that define the animation.
Public propertyName Gets or sets the name of this Timeline. (Inherited from Timeline.)
Public propertyRepeatBehaviorGets or sets the repeating behavior of this timeline. (Inherited from Timeline.)
Public propertySpeedRatioGets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Inherited from Timeline.)
Public propertyTargetPropertyTypeGets the type of value this animation generates. (Inherited from DecimalAnimationBase.)
Top

  NameDescription
Protected methodAddChildAdds a child DecimalKeyFrame to this DecimalAnimationUsingKeyFrames.
Protected methodAddTextAdds a text string as a child of this DecimalAnimationUsingKeyFrames.
Protected methodAllocateClockCreates a Clock for this AnimationTimeline. (Inherited from AnimationTimeline.)
Public methodApplyAnimationClock(DependencyProperty, AnimationClock)Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the SnapshotAndReplace handoff behavior is used. (Inherited from Animatable.)
Public methodApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the specified HandoffBehavior is used. (Inherited from Animatable.)
Public methodBeginAnimation(DependencyProperty, AnimationTimeline)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.)
Public methodBeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)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.)
Public methodCheckAccessDetermines whether the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.)
Public methodClearValue(DependencyProperty)Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier. (Inherited from DependencyObject.)
Public methodClearValue(DependencyPropertyKey)Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey. (Inherited from DependencyObject.)
Public methodCloneCreates a modifiable clone of this DecimalAnimationUsingKeyFrames, 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.
Protected methodCloneCoreMakes this instance a deep copy of the specified DecimalAnimationUsingKeyFrames. 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. (Overrides Freezable::CloneCore(Freezable).)
Public methodCloneCurrentValueCreates a modifiable clone of this DecimalAnimationUsingKeyFrames object, making deep copies of this object's current values. Resource references, data bindings, and animations are not copied, but their current values are.
Protected methodCloneCurrentValueCoreMakes this instance a modifiable deep copy of the specified DecimalAnimationUsingKeyFrames using current property values. Resource references, data bindings, and animations are not copied, but their current values are. (Overrides Freezable::CloneCurrentValueCore(Freezable).)
Public methodCoerceValueCoerces 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.)
Public methodCreateClock()Creates a new AnimationClock from this AnimationTimeline. (Inherited from AnimationTimeline.)
Public methodCreateClock(Boolean)Creates a new Clock from this Timeline and specifies whether the new Clock is controllable. If this Timeline has children, a tree of clocks is created with this Timeline as the root. (Inherited from Timeline.)
Protected methodCreateInstanceInitializes a new instance of the Freezable class. (Inherited from Freezable.)
Protected methodCreateInstanceCoreCreates a new instance of DecimalAnimationUsingKeyFrames. (Overrides Freezable::CreateInstanceCore().)
Public methodEqualsDetermines whether a provided DependencyObject is equivalent to the current DependencyObject. (Inherited from DependencyObject.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodFreeze()Makes the current object unmodifiable and sets its IsFrozen property to true. (Inherited from Freezable.)
Protected methodFreezeCoreMakes this instance of DecimalAnimationUsingKeyFrames object unmodifiable or determines whether it can be made unmodifiable.. (Overrides Timeline::FreezeCore(Boolean).)
Public methodGetAnimationBaseValueReturns the non-animated value of the specified DependencyProperty. (Inherited from Animatable.)
Public methodGetAsFrozenCreates a frozen copy of the Freezable, using base (non-animated) property values. Because the copy is frozen, any frozen sub-objects are copied by reference. (Inherited from Freezable.)
Protected methodGetAsFrozenCoreMakes this instance a clone of the specified DecimalAnimationUsingKeyFrames object. (Overrides Timeline::GetAsFrozenCore(Freezable).)
Public methodGetCurrentValue(Decimal, Decimal, AnimationClock)Gets the current value of the animation. (Inherited from DecimalAnimationBase.)
Public methodGetCurrentValue(Object, Object, AnimationClock)Gets the current value of the animation. (Inherited from DecimalAnimationBase.)
Public methodGetCurrentValueAsFrozenCreates a frozen copy of the Freezable using current property values. Because the copy is frozen, any frozen sub-objects are copied by reference. (Inherited from Freezable.)
Protected methodGetCurrentValueAsFrozenCoreMakes this instance a copy of the specified DecimalAnimationUsingKeyFrames. (Overrides Timeline::GetCurrentValueAsFrozenCore(Freezable).)
Protected methodGetCurrentValueCore Calculates a value that represents the current value of the property being animated, as determined by this instance of DecimalAnimationUsingKeyFrames. (Overrides DecimalAnimationBase::GetCurrentValueCore(Decimal, Decimal, AnimationClock).)
Public methodGetHashCodeGets a hash code for this DependencyObject. (Inherited from DependencyObject.)
Public methodGetLocalValueEnumeratorCreates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject. (Inherited from DependencyObject.)
Protected methodGetNaturalDurationReturns the length of a single iteration of this Timeline. (Inherited from Timeline.)
Protected methodGetNaturalDurationCoreProvide a custom natural Duration when the Duration property is set to Automatic. (Overrides AnimationTimeline::GetNaturalDurationCore(Clock).)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetValueReturns the current effective value of a dependency property on this instance of a DependencyObject. (Inherited from DependencyObject.)
Public methodInvalidatePropertyRe-evaluates the effective value for the specified dependency property (Inherited from DependencyObject.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnChangedCalled when the current DecimalAnimationUsingKeyFrames object is modified. (Overrides Freezable::OnChanged().)
Protected methodOnFreezablePropertyChanged(DependencyObject, DependencyObject)Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set. (Inherited from Freezable.)
Protected methodOnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. (Inherited from Freezable.)
Protected methodOnPropertyChangedOverrides the DependencyObject implementation of OnPropertyChanged to also invoke any Changed handlers in response to a changing dependency property of type Freezable. (Inherited from Freezable.)
Public methodReadLocalValueReturns the local value of a dependency property, if it exists. (Inherited from DependencyObject.)
Protected methodReadPreambleEnsures 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.)
Public methodSetCurrentValueSets the value of a dependency property without changing its value source. (Inherited from DependencyObject.)
Public methodSetValue(DependencyProperty, Object)Sets the local value of a dependency property, specified by its dependency property identifier. (Inherited from DependencyObject.)
Public methodSetValue(DependencyPropertyKey, Object)Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property. (Inherited from DependencyObject.)
Public methodShouldSerializeKeyFramesReturns true if the value of the KeyFrames property of this instance of DecimalAnimationUsingKeyFrames should be value-serialized.
Protected methodShouldSerializePropertyReturns a value that indicates whether serialization processes should serialize the value for the provided dependency property. (Inherited from DependencyObject.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodVerifyAccessEnforces that the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.)
Protected methodWritePostscriptRaises 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.)
Protected methodWritePreambleVerifies 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.)
Top

  NameDescription
Public eventChangedOccurs when the Freezable or an object it contains is modified. (Inherited from Freezable.)
Public eventCompletedOccurs when this timeline has completely finished playing: it will no longer enter its active period. (Inherited from Timeline.)
Public eventCurrentGlobalSpeedInvalidatedOccurs when the rate at which time progresses for the timeline's clock changes. (Inherited from Timeline.)
Public eventCurrentStateInvalidatedOccurs when the CurrentState property of the timeline's Clock is updated. (Inherited from Timeline.)
Public eventCurrentTimeInvalidatedOccurs when the CurrentTime property of the timeline's Clock is updated. (Inherited from Timeline.)
Public eventRemoveRequestedOccurs when the clock created for this timeline or one of its parent timelines is removed. (Inherited from Timeline.)
Top

  NameDescription
Explicit interface implemetationPrivate methodIAddChild::AddChildAdds a child object.
Explicit interface implemetationPrivate methodIAddChild::AddTextAdds the text content of a node to the object.
Explicit interface implemetationPrivate propertyIKeyFrameAnimation::KeyFramesGets or sets an ordered collection P:System.Windows.Media.Animation.IKeyFrameAnimation.KeyFrames associated with this animation sequence.
Top

A key frame animation's target values are defined by its KeyFrames property, which contains a collection of DecimalKeyFrame objects. Each DecimalKeyFrame defines a segment of the animation with its own target Value and KeyTime. When the animation runs, it progresses from one key value to the next at the specified key times.

There are three types of DecimalKeyFrame classes, one for each supported interpolation method: LinearDecimalKeyFrame, DiscreteDecimalKeyFrame, and SplineDecimalKeyFrame.

Unlike a DecimalAnimation, a DecimalAnimationUsingKeyFrames can have more than two of target values. You can also control the interpolation method of individual DecimalKeyFrame segments.

This example shows how to animate the value of a property that takes a Double by using key frames.

The following example moves a rectangle across a screen. The example uses the DoubleAnimationUsingKeyFrames class to animate the X property of a TranslateTransform applied to a Rectangle. This animation, which repeats indefinitely, uses three key frames in the following manner:

  1. During the first three seconds, uses an instance of the LinearDoubleKeyFrame class to move the rectangle along a path at a steady rate from its starting position to the 500 position. Linear key frames like LinearDoubleKeyFrame create a smooth linear transition between values.

  2. At the end of the fourth second, uses an instance of the DiscreteDoubleKeyFrame class to suddenly move the rectangle to the next position. Discrete key frames like DiscreteDoubleKeyFrame create sudden jumps between values. In this example, the rectangle is at the starting position and then suddenly appears at the 500 position.

  3. In the final two seconds, uses an instance of the SplineDoubleKeyFrame class to move the rectangle back to its starting position. Spline key frames like SplineDoubleKeyFrame create a variable transition between values according to the value of the KeySpline property. In this example, the rectangle begins by moving slowly and then speeds up exponentially toward the end of the time segment.

No code example is currently available or this language may not be supported.
<!-- This example shows how to use the DoubleAnimationUsingKeyFrames to 
     animate the position of an object. 
     Key frame animations enable you to create complex animations 
     by specifying multiple destination values
     and controlling the animation's interpolation method.
-->
<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="DoubleAnimationUsingKeyFrames Example"
  Background="White" Margin="20">       
  <Canvas Width="610" Height="300">

    <!-- The position of this rectangle is animated using 
         a key frame animation. -->
    <Rectangle 
      Canvas.Top="100"
      Canvas.Left="10"
      Height="100"
      Width="100"
      Stroke="Black"
      StrokeThickness="5">
      <Rectangle.RenderTransform>
        <TranslateTransform x:Name="AnimatedTranslateTransform" />
      </Rectangle.RenderTransform>

      <Rectangle.Triggers>
        <EventTrigger RoutedEvent="Rectangle.Loaded">
          <BeginStoryboard>
            <Storyboard>

              <!-- Animate the TranslateTransform.X property using 3 KeyFrames
                   which animates the rectangle along a straight line. 
                   This animation repeats indefinitely. -->
              <DoubleAnimationUsingKeyFrames
                Storyboard.TargetName="AnimatedTranslateTransform"
                Storyboard.TargetProperty="X"
                Duration="0:0:6"
                RepeatBehavior="Forever">

                <!-- Using a LinearDoubleKeyFrame, the rectangle moves 
                     steadily from its starting position to 500 over 
                     the first 3 seconds.  -->
                <LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />

                <!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly 
                     appears at 400 after the fourth second of the animation. -->
                <DiscreteDoubleKeyFrame Value="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. -->
                <SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
              </DoubleAnimationUsingKeyFrames>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Rectangle.Triggers>
    </Rectangle>
  </Canvas>
</Page>

For the complete sample, see KeyFrame Animation Sample.

For consistency with other animation examples, the code versions of this example use a Storyboard object to apply the DoubleAnimationUsingKeyFrames. Alternatively, when applying a single animation in code, it is simpler to use the BeginAnimation method instead of using a Storyboard. For an example, see How to: Animate a Property Without Using a Storyboard.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft