Подтвердить что ты не робот

Как указать один ресурс (SolidColorBrush) на другом

Я установил загрузку ресурсов SolidColorBrush и LinearGradientBrush в ResourceDictionary. Я использовал их, поскольку я использовал рестайлинг нескольких элементов управления для использования в нашем приложении.

Теперь у меня есть куча других внешних кистей, которые я должен использовать для вариации нашего приложения. Они также созданы в ReseourceDictionary.

Можно ли указать ресурсы кисти на новые ресурсы в другом словаре, что-то похожее на атрибут "BasedOn" для стилей?

Что-то вроде этого, по крайней мере концептуально:

<SolidColorBrush x:Key="MyDataGridHeaderBrush" Binding="HeaderBrushDefinedElsewhere"/>

... или это невозможно, и в этом случае мне нужно просто найти Find/Replace и заменить все мои имена кистей на новые имена кистей?

Спасибо заранее,

в

4b9b3361

Ответ 1

Я согласен с тем, что сказала Рейчел, но если вам нужно основать его на существующем SolidColorBrush, вы можете сделать это со следующим:

<SolidColorBrush x:Key="MyDataGridHeaderBrush" 
                 Color="{Binding Source={StaticResource HeaderBrushDefinedElsewhere}, Path=Color"/>

Обратите внимание, что это просто работает для атрибута "Цвет", вам придется делать это отдельно для каждого необходимого вам атрибута.

Ответ 2

Обычно я делаю статическое свойство Color в одном месте и привязываю кисти к этому цвету.

<SolidColorBrush x:Key="LightColor" Color="#C5DBF6"/>
<SolidColorBrush x:Key="DarkColor" Color="#FF8DB2E3"/>

<LinearGradientBrush x:Key="FadeOutRight" EndPoint="1,1" StartPoint="0,0">
        <GradientStop Color="{Binding Source={StaticResource LightColor}, Path=Color}" Offset="0" />
        <GradientStop Color="{Binding Source={StaticResource DarkColor}, Path=Color}" Offset="1"/>
</LinearGradientBrush>

Вы также можете привязать другие SolidBrushColors к этому:

<SolidColorBrush Color="{Binding Source={StaticResource LightColor}, Path=Color}" />

Если это указано в другом файле, это может подчеркнуть его, потому что он не может найти статический ресурс, но во время выполнения он все равно будет компилироваться, если будет загружен ваш основной файл ресурсов, содержащий ваши определения кистей.