Когда я переопределяю стиль у ModernBtn в Window1 по сути я убираю у него свойство Template. Из-за этого вылетают ошибки. Подскажите как сделать так чтоб при присваивании стиля в Window1 свойство Template всегда было таким как в ModerBtn.xaml
ModernBtn.xaml.cs
Color bgColor;
Rectangle indicator;
Border mainBorder;
public ModernBTN()
{
InitializeComponent();
this.Loaded += delegate (object sender, RoutedEventArgs e) {
indicator = (Rectangle)this.myBtn.GetTemplateChild("indicatorBtn");
mainBorder = (Border)this.myBtn.GetTemplateChild("mainBorder");
bgColor = ((SolidColorBrush)mainBorder.Background).Color;
MouseEnter += EnterAnim;
MouseLeave += LeaveAnim;
};
}
Mindow1.xaml
<ModernButton:ModernBTN BtnText="Menu: " Foreground="White" CornerRadius="20">
<ModernButton:ModernBTN.Style>
<Style TargetType="ModernButton:ModernBTN">
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
<Setter Property="Width" Value="100"></Setter>
<Setter Property="Height" Value="40"></Setter>
<Setter Property="ButtonColor" Value="Transparent"></Setter>
<Setter Property="BGHover" Value="#A4A4A4"></Setter>
<Setter Property="ForeColor" Value="#646363"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding LightStyle}" Value="True">
<Setter Property="BGHover" Value="White"></Setter>
<Setter Property="ForeColor" Value="#A4A4A4"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ModernButton:ModernBTN.Style>
</ModernButton:ModernBTN>
ModernBtn.xaml
<Button x:Class="ModernButton.ModernBTN"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ModernButton"
mc:Ignorable="d"
d:DesignHeight="100" d:DesignWidth="200" Name="myBtn" Background="Transparent">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="{Binding ElementName=myBtn, Path=ButtonColor}" CornerRadius="{Binding ElementName=myBtn, Path=CornerRadius}" Name="mainBorder">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{Binding ElementName=myBtn, Path=BtnText}" FontSize="25" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{Binding ElementName=myBtn, Path=ForeColor}"></TextBlock>
<Rectangle Fill="Lime" Height="5" VerticalAlignment="Bottom" Margin="0,0,0,20" Name="indicatorBtn" Width="0"></Rectangle>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>