【发布时间】:2016-08-11 18:59:21
【问题描述】:
我有一个扩展器样式,它在标题和内容上都应用了模板
我希望内容模板中的一个 TextBlock 与标题的 TextBlock 的前景色相匹配
<Style TargetType="Expander">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Foreground="Blue"/> <!--Header TextBlock-->
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock/> <!--Match Header TextBlock's Foreground-->
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
我尝试过 ElemenName 绑定,但似乎名称范围不同,因为我是 2 个模板级别的深度。
我考虑过 TemplateBinding,但我只希望内容中的一列与标题的颜色匹配,而不是整个扩展器。
我也可以对 Content TextBlock 上的 Header TextBlock 应用相同的触发器,但我想看看是否有办法避免重复代码。
【问题讨论】: