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