Я пытаюсь добавить PropertyChangedCallback в UIElement.RenderTransformOriginProperty. Исключение выдается, когда я пытаюсь переопределить PropertyMetadata.
Я искал MSDN и Google, и все, что мне удалось найти, это this . 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);
}
}