public void ClearValue(DependencyPropertyKey key)
 {
     this.ClearValue(key.DependencyProperty);
 }
 public void SetValue(DependencyPropertyKey key, object value)
 {
     this.SetValue(key.DependencyProperty, value);
 }
        public void OverrideMetadata(Type forType, PropertyMetadata typeMetadata, DependencyPropertyKey key)
        {
            if (forType == null)
            {
                throw new ArgumentNullException("forType");
            }

            if (typeMetadata == null)
            {
                throw new ArgumentNullException("typeMetadata");
            }

            // further checking?  should we check
            // key.DependencyProperty == this?
            typeMetadata.Merge(this.DefaultMetadata, this, forType);
            this.metadataByType.Add(forType, typeMetadata);
        }