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类型的附加属性