登録時に検証/強制プロパティ コールバックを定義できます。このMSDN ページには、依存関係プロパティの検証の実装に関する詳細な説明があります。
要するに、プロパティを登録するときに検証および強制コールバックを指定し、それらのコールバック内の厚さの値を確認できます。
たとえば、Border
のBorderThickness
プロパティを登録する方法は次のとおりです (ILSpy のコード)。
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));
そして、検証方法自体は次のとおりです。
private static bool IsThicknessValid(object value)
{
return ((Thickness)value).IsValid(false, false, false, false);
}