Think it's because of the DropShadowEffect
trying to get applied to all children which I guess is where the ContentPresenter
is in the Style
Try this:
<Style x:Key="RedButton"
TargetType="Button">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Border x:Name="Border"
BorderThickness="1"
CornerRadius="6"
TextBlock.Foreground="{TemplateBinding Foreground}">
<Border.BorderBrush>
<LinearGradientBrush StartPoint="0,0"
EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="1.0"
Color="{StaticResource DarkRedColor}" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Border.BorderBrush>
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0"
EndPoint="0.5,1">
<GradientStop Offset="0.5"
Color="{StaticResource LightRedColor}" />
<GradientStop Offset="1"
Color="{StaticResource DarkRedColor}" />
</LinearGradientBrush>
</Border.Background>
<Border.Effect>
<DropShadowEffect Opacity=".50"
RenderingBias="Quality"
ShadowDepth="4"
Color="Black" />
</Border.Effect>
</Border>
<Border BorderThickness="1"
CornerRadius="6"
TextBlock.Foreground="{TemplateBinding Foreground}">
<ContentPresenter />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>