質問

アプリケーション用のすべてのスタイルを備えたWPFリソース辞書を作成しています!私はいくつかを持っています LinearGradientBrushes、色はlに直接設定されていますinearGradientBrush 参照として GradientStops。ただし、それぞれにAAリファレンスを使用できる定義済みの色のセットが必要です 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'.  

それが言及する線は、どこにあるかです <GradientStop Color="{StaticResource colorbrushMedium}"/> 定義されています。

何か案は?

役に立ちましたか?

解決

わかりました、私は問題を見つけました:

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>

これは私の問題を解決しているようです!

他のヒント

使用する 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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top