我正在尝试向UIElement.RenderTransformOriginProperty添加PropertyChangedCallback。当我尝试覆盖PropertyMetadata时,会抛出异常。
我已经在MSDN和Google上搜索了,但我只找到了这篇文章。在该帖子中的某些地方建议使用DependencyPropertyDescriptor.AddValueChanged,但这不会解决我的问题,因为这不是每个实例的回调函数。
我完全不理解这个异常是什么意思。有人知道我做错了什么吗?
public class foo : FrameworkElement
{
private static void Origin_Changed( DependencyObject d,
DependencyPropertyChangedEventArgs e)
{ }
static foo()
{
PropertyMetadata OriginalMetaData =
UIElement.RenderTransformOriginProperty.GetMetadata(
typeof(FrameworkElement));
/*An exception is thrown when this line is executed:
"Cannot change property metadata after it has been associated with a property"*/
OriginalMetaData.PropertyChangedCallback +=
new PropertyChangedCallback(Origin_Changed);
UIElement.RenderTransformOriginProperty.OverrideMetadata(
typeof(foo), OriginalMetaData);
}
}