Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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/