2012-03-12 121 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>