why don't people wrap DependencyProperties in a generic class?
It is not a bad idea, and well worth a try, but it will not work!
You have essentially defined a single dependency property named "Value". This will be OK if you only ever access it via your CLR wrapper (i.e. the get / set code for your Value property). However, much of the framework affects the dependency property directly. For example, style setters, animations will not be able to use your dependency property.
I too share your pain with the DP boilerplate code, which is why I came up with a declarative solution:
[DependencyPropertyDecl("Maximum", typeof(double), 0.0)]
[DependencyPropertyDecl("Minimum", typeof(double), 0.0)]
public partial class RangeControl : UserControl
{
...
}
The actual dependency properties are generated by a T4 template within Visual Studio.
https://blog.scottlogic.com/2009/08/18/declarative-dependency-property-definition-with-t4-dte.html