Ссылка на другую кисть из одной кисти в 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, я думаю, я бы поставил под вопрос, почему вы это сделаете, если только это не для какой-либо будущей гибкости. В противном случае вы просто создаете дополнительные проблемы с работой и читабельностью для себя.