【问题标题】:Using a StaticResource SolidColorBrush to define the Gradient Stop Colors使用 StaticResource SolidColorBrush 定义渐变色停止颜色
【发布时间】:2010-12-22 08:44:51
【问题描述】:

我正在创建一些包含应用程序所有样式的 wpf 资源字典!我有几个LinearGradientBrushes,其中颜色直接在LinearGradientBrush 引用中设置为GradientStops。但是,我想要一组预定义的颜色,我可以为每个 GradientStop 使用一个引用,因此更改应用程序的配色方案就是更改 SolidColorBrushes 的值:

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


<LinearGradientBrush>
    <GradientStop Color="{StaticResource colorbrushMedium}"/>
    <GradientStop Color="{StaticResource colorbrushDark}" Offset="1"/>
</LinearGradientBrush>

使用上面的代码示例,我收到以下错误:

Cannot convert the value in attribute 'Color' to object of type 'System.Windows.Media.Color'. '#5A5A5A' is not a valid value for property 'Color'.  

它所指的行是定义&lt;GradientStop Color="{StaticResource colorbrushMedium}"/&gt;的行。

有什么想法吗?

【问题讨论】:

    标签: wpf xaml resources colors brushes


    【解决方案1】:

    好的,我发现问题了:

    使用颜色而不是 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>
    

    这似乎解决了我的问题!

    【讨论】:

    • 您甚至可以编写静态类 Colors 中定义的颜色,而不是十六进制代码,例如灰色。
    • 如果您还需要为需要 SolidColorBrush 的属性使用相同的颜色怎么办?
    【解决方案2】:

    使用Binding 引用SolidColorBrushLinearGradientBrush 中的颜色:

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      相关资源
      最近更新 更多