RenderOptions.EdgeMode="Aliased", но тогда графика совсем не о чем
<Style x:Key="RoundedButton" TargetType="Button">
<Setter Property="Grid.Column" Value="1"/>
<Setter Property="Margin" Value="20 32"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontFamily" Value="Verdana"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Border Name="RoundedButtonBorder"
Margin="0"
CornerRadius="15"
Background="{TemplateBinding Background}"
BorderBrush="White"
BorderThickness="3"
>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"
>
</ContentPresenter>
</Border>
<Border Name="RoundedButtonBorderHidden"
Margin="0"
CornerRadius="15"
BorderBrush="White"
BorderThickness="5"
Visibility="Hidden"
>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"
>
</ContentPresenter>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="White" />
<Setter Property="Foreground" Value="Black" />
<Setter TargetName="RoundedButtonBorderHidden" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
public void OpenOptions(...) //передаем все необходимые параметры
{ ... }
private void OpenOptions(object sender, RoutedEventArgs e)
{
Animations.OpenOptions(...,...,...);
}