21

是否可以在我的资源字典中直接引用来自另一个画笔的画笔值,而不使用颜色定义(或者准确地说,将一个画笔资源复制到另一个画笔资源中)?

例如,我有一个画笔定义:

<SolidColorBrush x:Key="PanelBackgroundBrush" Color="White"/>

而且我还有一些其他的画笔,我想与“PanelBackgroundBrush”完全相同,如下所示:

<SolidColorBrush x:Key="FolderColor" [BrushToCopy]="{StaticResource PanelBackgroundBrush}"/>

这样“PanelBackgroundBrush”和“FolderColor”都使用白色。

我知道这可以通过使用通用颜色定义以某种方式实现。

4

2 回答 2

36

我不知道要复制画笔本身,但正如您所说,您可以复制画笔的属性:

<SolidColorBrush x:Key="FolderColor" Color="{Binding Color, Source={StaticResource PanelBackgroundBrush}}"/>

上面应该有同样的效果。

于 2010-10-25T17:26:59.623 回答
6

你可以这样做:

<Color x:Key="colorCommon">Red</Color>
<SolidColorBrush x:Key="scb1" Color="{StaticResource colorCommon}" />
<SolidColorBrush x:Key="scb2" Color="{StaticResource colorCommon}" /> 

(请注意,您可以在 Color 中指定常规 Color 属性)。

但是,如果您只是对多个 SolidColorBrush 对象使用相同的颜色,我想我会质疑您为什么要这样做,除非它是为了未来的灵活性。否则,您只是在为自己制造额外的工作和可读性问题。

于 2010-10-25T18:03:04.570 回答