Я не использовал его раньше, но я считаю, что это то, для чего DependencyProperty.OverrideMetadata .
В вашем классе вы бы добавили статический конструктор, и в этом статическомконструктор, вы бы вызвали OverrideMetadata, передав PropertyMetadata с новым значением по умолчанию.Например: (теоретический, непроверенный)
static FunctionButton4() {
WidthProperty.OverrideMetadata(
typeof(FunctionButton4), new PropertyMetadata(64));
HeightProperty.OverrideMetadata(
typeof(FunctionButton4), new PropertyMetadata(64));
}