DependencyProperty Precedence(3)
Let’s focused on the coercion of DP value.
In the precedence list, the coercion source is the highest.
In order to verify it, I have created a class called CoercionButton.
1: public class CoercionButton : Button
2: {
3: static CoercionButton()
4: {
5: WidthProperty.OverrideMetadata(typeof(CoercionButton), new FrameworkPropertyMetadata(null, OnCoerceValueCallback));
6: }
7:
8: // public delegate object CoerceValueCallback(DependencyObject d, object baseValue);
9: public static object OnCoerceValueCallback(DependencyObject d, object baseValue)
10: {
11: return 150.0;
12: }
13: }
It overrides the Metadata of WidthProperty and adds CoerceValueCallback. And in the callback, returns a constant value 150.0.
We change the “Target Button” from normal Button type to CoercionButton type.
But the event handler for other 4 buttons remain some.
No matter which button you clicks, the Width of “Target Button” is always 150.
And the animation doesn’t work.
Comments
- Anonymous
January 05, 2009
PingBack from http://www.codedstyle.com/dependencyproperty-precedence3/