我有一个自定义控件,它基本上是一个内容控件
public class PromoAlarmBox : ContentControl
{
static PromoAlarmBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(PromoAlarmBox), new FrameworkPropertyMetadata(typeof(PromoAlarmBox)));
}
}
我将它添加到包含用户控件
<controls:PromoAlarmBox Grid.Row="9" Grid.Column="1" />
如果我将样式添加到包含的用户控件资源中,一切正常
<UserControl.Resources>
<Style TargetType="{x:Type controls:PromoAlarmBox}">
<Setter Property="ContentControl.ContentTemplate">
<Setter.Value>
<DataTemplate >
<Rectangle Fill="Blue" Stroke="Black" Height="20" Width="20"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
但是,如果我将其添加到自定义控件项目中的 generic.xaml 中,则不会显示任何内容
<Style TargetType="{x:Type local:PromoAlarmBox}">
<Setter Property="ContentControl.ContentTemplate">
<Setter.Value>
<DataTemplate >
<Rectangle Fill="Blue" Stroke="Black" Height="20" Width="20"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
我知道该样式已应用,因为我在同一个项目中有其他控件,其样式在 generic.xaml 中定义,有人有什么想法吗?