You can omit defining the TargetType of a Style, but, for that to work, you must define the property with a fully qualified name. For example, the preceding Style can be written as shown here to get the same result:
<Style x:Key="ButtonBaseStyle">
<Setter Property="Button.Height"
Value="30"/>
<Setter Property="Button.MinWidth"
Value="180"/>
<Setter Property="Button.FontSize"
Value="16"/>
<Setter Property="Button.HorizontalAlignment"
Value="Center"/>
<Setter Property="Button.Padding"
Value="8 0"/>
<Setter Property="Button.Margin"
Value="4"/>
<Setter Property="Button.Cursor"
Value="Hand"/>
<Setter Property="Button.BorderThickness...