Wpf 使用StaticResource SolidColorBrush定义渐变停止颜色

Wpf 使用StaticResource SolidColorBrush定义渐变停止颜色,wpf,xaml,resources,colors,brushes,Wpf,Xaml,Resources,Colors,Brushes,我正在为一个应用程序创建一些具有所有样式的wpf资源字典!我有一些LinearGradientBrushes,其中颜色直接在LinearGradientBrush参考中设置为GradientStops。但是,我希望有一组预定义的颜色,我可以为每个GradientStop使用一个参考,因此更改应用程序的颜色方案就是更改SolidColorBrushes的值: <SolidColorBrush Color="#5A5A5A" x:Key="colorbrushMedium" /> &l

我正在为一个应用程序创建一些具有所有样式的wpf资源字典!我有一些
LinearGradientBrush
es,其中颜色直接在L
inearGradientBrush
参考中设置为
GradientStop
s。但是,我希望有一组预定义的颜色,我可以为每个
GradientStop
使用一个参考,因此更改应用程序的颜色方案就是更改
SolidColorBrush
es的值:

<SolidColorBrush Color="#5A5A5A" x:Key="colorbrushMedium" /> 
<SolidColorBrush Color="#222222" x:Key="colorbrushDark" />  


<LinearGradientBrush>
    <GradientStop Color="{StaticResource colorbrushMedium}"/>
    <GradientStop Color="{StaticResource colorbrushDark}" Offset="1"/>
</LinearGradientBrush>
它所指的行是定义
的行


有什么想法吗?

好的,我发现了问题:

使用颜色而不是SolidColorBrush

<Color x:Key="colorbrushMedium">#FF5A5A5A</Color>
<Color x:Key="colorbrushDark">#FF222222</Color>
<LinearGradientBrush>
    <GradientStop Color="{StaticResource colorbrushMedium}"/>
    <GradientStop Color="{StaticResource colorbrushDark}" Offset="1"/>
</LinearGradientBrush>
#ff5a5a
#FF222222

这似乎解决了我的问题

使用
Binding
SolidColorBrush
LinearGradientBrush
中引用颜色:

<SolidColorBrush x:Key="stop1" Color="#FF5A5A5A"/>
<SolidColorBrush x:Key="stop2" Color="#FF222222"/>

<LinearGradientBrush x:Key="gradient">
  <GradientStop Color="{Binding Source={StaticResource stop1},Path=Color}" Offset="0"/>
  <GradientStop Color="{Binding Source={StaticResource stop2},Path=Color}" Offset="1"/>
</LinearGradientBrush>


您甚至可以编写以静态类颜色而不是十六进制代码定义的颜色,例如灰色。如果您还需要为需要SolidColorBrush的属性使用相同的颜色,该怎么办?
<SolidColorBrush x:Key="stop1" Color="#FF5A5A5A"/>
<SolidColorBrush x:Key="stop2" Color="#FF222222"/>

<LinearGradientBrush x:Key="gradient">
  <GradientStop Color="{Binding Source={StaticResource stop1},Path=Color}" Offset="0"/>
  <GradientStop Color="{Binding Source={StaticResource stop2},Path=Color}" Offset="1"/>
</LinearGradientBrush>