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

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

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

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

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

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

Так что и "PanelBackgroundBrush" и "FolderColor" используют цвет белый.

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

2 ответов


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

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

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


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

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

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

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