Ссылка на другую кисть из одной кисти в xaml

Можно ли напрямую ссылаться на значение Brush из другого Brush в моем ресурсном словаре без использования определения цвета (или, точнее, копирования одного ресурса кисти в другой)?

Например, у меня есть определение Brush:

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

И у меня есть несколько других кистей, которые я хотел бы быть точными так же, как "PanelBackgroundBrush", примерно так:

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

Для того, чтобы "PanelBackgroundBrush" и "FolderColor" использовали цвет белый.

Я понимаю, что это может быть достигнуто путем использования общего определения цвета.

Ответы

Ответ 1

Я не знаю, как копировать кисть, но, как вы говорите, вы можете скопировать свойства кисти:

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

Вышеуказанное должно иметь тот же эффект.

Ответ 2

Вы можете сделать что-то вроде этого:

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

(Обратите внимание, что вы можете указать обычные свойства Color в Color).

Однако, если вы используете один и тот же цвет с несколькими объектами SolidColorBrush, я думаю, я бы поставил под вопрос, почему вы это сделаете, если только это не для какой-либо будущей гибкости. В противном случае вы просто создаете дополнительные проблемы с работой и читабельностью для себя.