Silverlight 通过资源字典控制模板和主题相关的数据分离

Silverlight 通过资源字典控制模板和主题相关的数据分离,silverlight,xaml,themes,resourcedictionary,Silverlight,Xaml,Themes,Resourcedictionary,我有几个带有主题相关数据的资源字典,其中我以这种方式声明了特定元素的样式: <Style TargetType="sdk:DataForm"> <Setter Property="Background" Value="{StaticResource Bckgrnd}"/> </Style> 还有Generic.xaml,我想在这里为这个目标类型设置模板,但是我遇到了一种情况,在一个模板中,我必须使用几种颜色,但是目标类型只有一个颜色属性。大概是这

我有几个带有主题相关数据的资源字典,其中我以这种方式声明了特定元素的样式:

<Style TargetType="sdk:DataForm">
    <Setter Property="Background" Value="{StaticResource Bckgrnd}"/>
</Style>

还有Generic.xaml,我想在这里为这个目标类型设置模板,但是我遇到了一种情况,在一个模板中,我必须使用几种颜色,但是目标类型只有一个颜色属性。大概是这样的:

<Style TargetType="sdk:DataForm">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="sdk:DataForm">
                <Grid ctl:DataField.IsFieldGroup="True">
                    ....
                 <StackPanel Background="{TemplateBinding Background}" ...>
                    ...
                    ...
                 <!-- and I need another background from themes here -->
                 <StackPanel Background="{???}" ...>
                    ...
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

....
...
...
...
问题是:在这种情况下,如果没有目标类型扩展之类的东西,我如何使用不同的颜色?如果您能找到纯xaml解决方案,那就太好了


谢谢

我不知道纯XAML解决方案。我想我应该创建DataForm的一个子类,并向其中添加Brush类型的依赖属性。然后在XAML中使用该类而不是数据表单,并使用引用新属性的TemplateBindings

或者,如果不想将DataForm子类化,也许可以创建Brush类型的附加属性