2012-03-12 109 views
12

我想要做这样的事情:WPF样式颜色

资源词典

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

有麻烦钉下来,可以在任何有一点指向正确的方向?

回答

18

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

很确定你甚至可以将刷子从你现有的颜色基础。

<SolidColorBrush x:Key="PrimaryBrush" Color="{StaticResource clrPrimary}" /> 
... 
    <Setter Property="Background" Value="{StaticResource PrimaryBrush}" /> 
+0

似乎你可以做到这一点,谢谢。 – AGoodDisplayName 2012-03-12 21:45:45

1

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

5

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

<Window.Resources> 
    <SolidColorBrush x:Key="clrPrimary" Color="#5381ac" /> 
</Window.Resources>