15

我想做这样的事情:

资源字典

<Color x:Key="clrPrimary">#5381ac</Color>
<Color x:Key="clrSecondary">#20558a</Color>

<Style TargetType="Grid" x:Key="myGrid">
    <Setter Property="Background" Value="{StaticResource clrPrimary"/>
</Style>

获得例外:

'#FF5381AC' is not a valid value for property 'Background'.

无法确定它,任何人都可以指出我正确的方向吗?

4

3 回答 3

21

Background是一个Brush,不是一个Color。您最好的选择是将您的“主要”和“次要”资源定义为画笔而不是颜色。

可以肯定的是,您甚至可以根据现有颜色制作画笔。

<SolidColorBrush x:Key="PrimaryBrush" Color="{StaticResource clrPrimary}" />
...
    <Setter Property="Background" Value="{StaticResource PrimaryBrush}" />
于 2012-03-12T21:40:44.890 回答
6

背景属性需要刷子才能工作。

<Window.Resources>
    <SolidColorBrush x:Key="clrPrimary" Color="#5381ac" />
</Window.Resources>
于 2012-03-12T21:41:21.263 回答
1

背景属性是类型System.Windows.Media.Brush,而不是颜色。

于 2012-03-12T21:41:15.647 回答