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

时间:2008-10-16 14:57:56

标签: silverlight

我有以下等级:

public class A
{
  protected class B
  {
  }
}

我尝试通过以下方式定义默认样式(在generic.xaml中):

<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>

有谁知道正确的语法?

1 个答案:

答案 0 :(得分:1)

我不相信支持继承样式,因为它在CSS中。您只能为特定目标类型创建样式。然后在实例上你需要提名样式。

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