I have a custom control derived from Button:
class MyControl : Button{}
And suppose, this class is empty (has no members).
In t
The TargetType property doesn't work for classes that derive from the specified type. See this question
I use SetResourceReference
SetResourceReference(StyleProperty, typeof(Button));
For doing this completely in code this answer on another forum works
this.Style = new Style(GetType(), this.FindResource(typeof(System.Windows.Controls.Button)) as Style);
Check if style for Button is there in your BureauBlue.xaml and remove x:key attribute from the style if it is there
You override the DefaultStyleKey's metadata in your static constructor:
static MyControl()
{
DefaultStyleKeyProperty.OverrideMetadata(
typeof(MyControl),
new FrameworkPropertyMetadata(typeof(MyControl)));
}
Then, in your resources, you can base its style on the button:
<Style TargetType="{x:Type lcl:MyControl}" BasedOn="{StaticResource {x:Type Button}}" />
I've tried in the past to override the DefaultStyleKey's metadata to point to the base class (Button in your case), but it doesn't seem to work.