2011-01-24 106 views
6

我想能够做到以下几点:定义颜色作为静态资源

... 
<Grid> 
    <Grid.Resources> 
    <Color x:Key="MyColor">#FFEEDD</Color> 
    <Color x:Key="MyOtherColor">Green</Color> 
    <!-- Use MyColor and MyOtherColor to define other resources... --> 
    </Grid.Resources> 
</Grid> 

不幸的是,我不得不这样做,而不是:

... 
<Grid> 
    <Grid.Resources> 
    <Color x:Key="MyColor" A="255" R="255" G="238" B="221" /> 
    <Color x:Key="MyOtherColor" A="255" R="0" G="128" B="0" /> 
    <!-- Use MyColor and MyOtherColor to define other resources... --> 
    </Grid.Resources> 
</Grid> 

因为,似乎价值转换器没有踢。这是臀部的皇家痛苦,我想知道我能做什么,以便我可以用十六进制值来象征性地定义我的颜色?

+0

我只见过第一种方式。我甚至不知道你可以做第二种方式。 – Gabe 2011-01-24 20:22:24

+0

看起来问题是由于构建问题造成的,VS2010设计器与XAML不同步。感谢Meleak在一个单独的项目中进行测试。 – 2011-01-24 20:34:01

回答

7

我不知道我理解你的问题。我试过这个,它工作。你如何使用你的色彩资源?

<Grid> 
    <Grid.Resources> 
     <Color x:Key="MyColor">#FFEEDD</Color> 
     <Color x:Key="MyOtherColor">Green</Color> 
    </Grid.Resources> 
    <Rectangle> 
     <Rectangle.Fill> 
      <SolidColorBrush Color="{StaticResource MyColor}"/> 
     </Rectangle.Fill> 
    </Rectangle> 
</Grid>