从xaml中的一个Brush中引用另一个Brush

mob*_*ofu 19 wpf styles brush resourcedictionary

是否可以直接引用资源字典中另一个Brush的Brush值,而不使用Color定义(或者确切地说,将一个画笔资源复制到另一个画笔中)?

例如,我有一个Brush定义:

<SolidColorBrush x:Key="PanelBackgroundBrush" Color="White"/>
Run Code Online (Sandbox Code Playgroud)

我还有一些其他的画笔,我想和"PanelBackgroundBrush"完全相同,就像这样:

<SolidColorBrush x:Key="FolderColor" [BrushToCopy]="{StaticResource PanelBackgroundBrush}"/>
Run Code Online (Sandbox Code Playgroud)

因此"PanelBackgroundBrush"和"FolderColor"都使用白色.

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

Ken*_*art 32

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

<SolidColorBrush x:Key="FolderColor" Color="{Binding Color, Source={StaticResource PanelBackgroundBrush}}"/>
Run Code Online (Sandbox Code Playgroud)

以上应该具有相同的效果.


Won*_*ane 6

您可以执行以下操作:

<Color x:Key="colorCommon">Red</Color>
<SolidColorBrush x:Key="scb1" Color="{StaticResource colorCommon}" />
<SolidColorBrush x:Key="scb2" Color="{StaticResource colorCommon}" /> 
Run Code Online (Sandbox Code Playgroud)

(请注意,您可以在“颜色”中指定常规的“颜色”属性)。

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