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

Получение Exception:

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

Возникли проблемы пригвоздил его, может ли один пункт меня в правильном направлении?

ответ

18

Background является Brush, а не Color. Лучше всего определить свои «первичные» и «вторичные» ресурсы как кисти, а не цвета.

Удостоверьтесь, что вы даже можете свести кисти от существующих цветов.

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

Кажется, вы можете это сделать, спасибо. – AGoodDisplayName

1

Фоновая Свойство имеет тип System.Windows.Media.Brush, а не цвет.

5

Для свойства фона требуется кисть для работы.

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