public static readonly DependencyProperty BorderThicknessProperty =
DependencyProperty.Register(
"BorderThickness",
typeof(Thickness),
typeof(Border),
new FrameworkPropertyMetadata(default(Thickness),
FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender,
new PropertyChangedCallback(Border.OnClearPenCache)),
new ValidateValueCallback(Border.IsThicknessValid));
1条答案
按热度按时间368yc8dk1#
你可以在注册的时候定义validation / coerce属性回调。这个MSDN page有一个关于实现依赖属性验证的更详细的描述。
简而言之,你可以在注册任何属性时为它指定验证和强制回调,并检查这些回调中的厚度值。
例如,下面是
Border
的BorderThickness
属性是如何注册的(代码来自ILSpy):字符串
下面是验证方法本身:
型