I don't know Forms at all, so if there is equivalent functionality I can't provide it.
Explanations for a couple of cosmetic changes:
Code always uses FrameworkPropertyMetadata. This is not only pretty much expected for WPF projects[^1], but it also provides a few extra constructors that only require the callbacks, which allows for tidy code generation.
I changed some of the diagnostics, because it was providing misleading information by outputting the class name twice instead of the method name.
The various permutations of constructors are cleanly handled by adding to a simple array and joining the result. I hope this is a reasonable approach for you.
Fixes #23
I don't know Forms at all, so if there is equivalent functionality I can't provide it.
Explanations for a couple of cosmetic changes:
FrameworkPropertyMetadata
. This is not only pretty much expected for WPF projects[^1], but it also provides a few extra constructors that only require the callbacks, which allows for tidy code generation.[^1]: See remarks in the official documentation: https://docs.microsoft.com/en-us/dotnet/api/system.windows.frameworkpropertymetadata?view=windowsdesktop-6.0#remarks