Silverlight:如何在generic.xaml中为子类设置默认样式?

Silverlight:如何在generic.xaml中为子类设置默认样式?,silverlight,Silverlight,我有以下等级: public class A { protected class B { } } 我尝试用以下方式定义默认样式(在generic.xaml中): 有人知道正确的语法吗?我不认为继承样式在CSS中是受支持的。只能为特定目标类型创建样式。然后在实例上,您需要指定样式 但是,您使用的是generic.xaml文件(现在位于themes/generic.xaml下),它为特定的目标类型应用默认样式。因此,如果您需要以包含的类B为目标,则需要定义B的样式,或者通过公共属性

我有以下等级:

public class A
{
  protected class B
  {
  }
}
我尝试用以下方式定义默认样式(在generic.xaml中):



有人知道正确的语法吗?

我不认为继承样式在CSS中是受支持的。只能为特定目标类型创建样式。然后在实例上,您需要指定样式


但是,您使用的是generic.xaml文件(现在位于themes/generic.xaml下),它为特定的目标类型应用默认样式。因此,如果您需要以包含的类B为目标,则需要定义B的样式,或者通过公共属性将其包含在A下。

正确。一般来说,你不应该考虑模板在层次结构中的想法:你应该为每个控件的默认样式键等提供唯一的模板。
<Style TargetType="local:A+B">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:A+B">
                <Grid/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Style TargetType="local:A.B">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:A.B">
                <Grid/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Style TargetType="local:B">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:B">
                <Grid/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>