When should I use FrameworkPropertyMetadata or UIPropertyMetadata over plain PropertyMetadata?
These classes are to report some behavior aspects of a dependency property.
Check the different classes for the options they provide.
For example,
if you just want to back a property by dp and provide a default value, use PropertyMetadata
,
if you want to specify animation behavior, use UIPropertyMetadata
,
but if some property affects wpf framework level stuffs eg element layout, parent layout or databinding, use FrameworkPropertyMetadata
.
Details you can check on msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx