File: Core\CSharp\System\Windows\Media\Animation\IndependentlyAnimatedPropertyMetadata.cs
Project: wpf\src\PresentationCore.csproj (PresentationCore)
// IndependentlyAnimatedPropertyMetadata.cs
 
using System.Windows;
 
namespace System.Windows.Media.Animation
{
    /// <summary>
    /// A class registers this type of Metadata for a property if the property
    /// can be independently animated on that class.
    /// </summary>
    internal class IndependentlyAnimatedPropertyMetadata : UIPropertyMetadata
    {
        internal IndependentlyAnimatedPropertyMetadata(object defaultValue) : base(defaultValue) {}
 
        internal IndependentlyAnimatedPropertyMetadata(object defaultValue, 
            PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback) 
            : base(defaultValue, propertyChangedCallback, coerceValueCallback) {}
 
        /// <summary>
        ///     Creates a new instance of this property metadata.  This method is used
        ///     when metadata needs to be cloned.  After CreateInstance is called the
        ///     framework will call Merge to merge metadata into the new instance.  
        ///     Deriving classes must override this and return a new instance of 
        ///     themselves.
        /// </summary>
        internal override PropertyMetadata CreateInstance() {
            return new IndependentlyAnimatedPropertyMetadata(DefaultValue);
        }
 
    }
}