You should use the DefaultStyle property to provide default appearance and let user to use the Style property to modify it.
Now you occupied the Style property, so we can only use a style with a BasedOn. Without it, the new style with few setters will replace the original style and makes the control invisible.
Why not set the DefaultStyleKey property like normal custom controls? Using the DefaultStyleKey can also help the control display normally even without adding the HandyControl's resource dictionary.