System.Windows.Controls.Label에서 파생 된 ExtendedLabel이 있습니다. PaddingProperty의 기본값을 지정하려고합니다. 이 목적을 위해 OverrideMetadata 메서드를 사용할 수 있다는 것을 알고 있습니다. 그러나 어떻게 작동하지 않는지, 채우기 vallue는 여전히 5,5,5,5 (Label의 기본값)으로 나타납니다.PaddingProperty에 기본값을 지정하면 아무 것도 변경되지 않습니다.
그러나 모든 것은 여백과 같은 다른 속성에서 예상대로 작동합니다.
class ExtendedLabel : Label
{
static ExtendedLabel()
{
PaddingProperty.OverrideMetadata(typeof(ExtendedLabel), new FrameworkPropertyMetadata(new Thickness(0)));
MarginProperty.OverrideMetadata(typeof(ExtendedLabel), new FrameworkPropertyMetadata(new Thickness(0, 10, 0, 20)));
}
public ExtendedLabel()
{
// this.Padding = new Thickness(0);
}
}
PS : 내 생성자에서 패딩을 설정하지 않으 . 이렇게하면 다른 개발자가 패딩을 해당 스타일에서 값으로 변경할 수 없기 때문입니다.
덕분에 많이. 매력처럼 작동 .. –