Esto es similar a la solución a la que se refiere Mark Heath, pero no tiene tanto código para crear un botón muy básico, sin el efecto de animación del mouse incorporado. Conserva un simple efecto de pasar el ratón por encima de mostrar el borde del botón en negro.
El estilo se puede insertar en la sección Window.Resources o UserControl.Resources, por ejemplo (como se muestra).
<UserControl.Resources>
<Style x:Key="MyButtonStyle" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border"
BorderThickness="1"
Padding="4,2"
BorderBrush="DarkGray"
CornerRadius="3"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Button Style="{StaticResource MyButtonStyle}">Hello!</Button>