是否可以直接从我的资源字典中的另一个Brush中引用Brush值,而不使用Color定义(或者确切地说,将一个画笔资源复制到另一个画笔中)?
例如,我有一个画笔定义:
<SolidColorBrush x:Key="PanelBackgroundBrush" Color="White"/>
我还有一些其他画笔,我想和“PanelBackgroundBrush”完全相同,就像这样:
<SolidColorBrush x:Key="FolderColor" [BrushToCopy]="{StaticResource PanelBackgroundBrush}"/>
因此“PanelBackgroundBrush”和“FolderColor”都使用白色。
我知道这可以通过使用常见的颜色定义以某种方式实现。
答案 0 :(得分:30)
我不知道复制画笔本身,但正如你所说,你可以复制画笔的属性:
<SolidColorBrush x:Key="FolderColor" Color="{Binding Color, Source={StaticResource PanelBackgroundBrush}}"/>
以上应该有同样的效果。
答案 1 :(得分:4)
您可以这样做:
<Color x:Key="colorCommon">Red</Color>
<SolidColorBrush x:Key="scb1" Color="{StaticResource colorCommon}" />
<SolidColorBrush x:Key="scb2" Color="{StaticResource colorCommon}" />
(请注意,您可以在颜色中指定常规颜色属性。)
但是,如果您只是使用与多个SolidColorBrush对象相同的颜色,我想我会质疑为什么要这样做,除非它是为了将来的灵活性。否则,您只是为自己创建额外的工作和可读性问题。