我有几个带有主题相关数据的资源词典,我用这种方式声明了特定元素的样式:
<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解决方案,那就太好了。
由于
答案 0 :(得分:0)
我不知道纯XAML解决方案。我想我会创建一个DataForm的子类,并为它添加Brush类型的依赖属性。然后在XAML而不是DataForm中使用该类,并使用引用新属性的TemplateBindings。
或者,如果您不想继承DataForm,也许您可以创建Brush类型的附加属性。