Ссылка на другую кисть из одной кисти в xaml - PullRequest
18 голосов
/ 25 октября 2010

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

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

И у меня есть пара других кистей, которые я бы хотел точно сказать "PanelBackgroundBrush", примерно так:что и "PanelBackgroundBrush", и "FolderColor" используют белый цвет.

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

Ответы [ 2 ]

31 голосов
/ 25 октября 2010

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

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

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

5 голосов
/ 25 октября 2010

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

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

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

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

...