Вы не можете изменить API базового класса, удалив свойства, но вы можете, например, переопределить метаданные для свойств Width
и Height
и предоставить CoerceValueCallback
, который препятствует установке свойства к пользовательскому значению:
public class MyThumb : Thumb
{
private const double DefaultWidth = 100.0;
public MyThumb()
{
WidthProperty.OverrideMetadata(typeof(MyThumb),
new FrameworkPropertyMetadata(DefaultWidth) { CoerceValueCallback = new CoerceValueCallback(OnWidthCoerced) });
}
private object OnWidthCoerced(DependencyObject d, object baseValue)
{
return DefaultWidth;
}
}
Кроме того, вы можете бросить InvalidOperationException
.