Пользовательская кнопка не должна быть UserControl, а вместо этого напрямую наследоваться от кнопки.
Добавьте «Пользовательский элемент управления (WPF)» в проект Visual Studio и измените его следующим образом:
public class MyButton : Button
{
static MyButton()
{
DefaultStyleKeyProperty.OverrideMetadata(
typeof(MyButton),
new FrameworkPropertyMetadata(typeof(MyButton)));
}
public static readonly DependencyProperty CornerRadiusProperty =
DependencyProperty.Register(
nameof(CornerRadius), typeof(CornerRadius), typeof(MyButton));
public CornerRadius CornerRadius
{
get => (CornerRadius)GetValue(CornerRadiusProperty);
set => SetValue(CornerRadiusProperty, value);
}
}
Затем измените стиль по умолчанию в сгенерированном файле Themes\Generic.xaml
:
<Style TargetType="local:MyButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:MyButton">
<Border Name="ground"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}"
CornerRadius="{TemplateBinding CornerRadius}">
<Label Name="content"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Content="{TemplateBinding Content}"
Foreground="{TemplateBinding Foreground}"
FontFamily="{TemplateBinding FontFamily}"
FontWeight="{TemplateBinding FontWeight}"
FontSize="{TemplateBinding FontSize}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Подробнее см. Обзор авторизации управления .