【问题标题】:Defining a color as a static resource将颜色定义为静态资源
【发布时间】:2011-01-24 19:42:18
【问题描述】:

我希望能够做到以下几点:

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

因为,价值转换器似乎没有发挥作用。这是一个非常痛苦的臀部,我想知道我能做些什么,以便我可以通过符号和十六进制值来定义我的颜色?

【问题讨论】:

  • 我只见过第一种方式。我什至不知道你可以用第二种方法做到这一点。
  • 看起来问题是由于构建问题造成的,其中 VS2010 设计器与 XAML 不同步。感谢 Meleak 在单独的项目中对其进行测试。
  • @Gabe:我把它从第一种方式改成了第二种方式。我没有意识到的是我在两者之间进行了重建,这解决了显然仅限于 VS2010 设计器的问题。如果我只是在不更改 XAML 的情况下进行了完全重建,那么它会以第一种方式工作。

标签: c# wpf c#-4.0 wpf-4.0


【解决方案1】:

我不确定我是否理解您的问题。我试过了,它工作正常。您如何使用您的色彩资源?

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

【讨论】:

  • 这很奇怪,它现在似乎可以工作了。我想知道这是否是一个重建问题。我会将您的答案标记为已回答并关闭问题。谢谢...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 2014-01-11
  • 1970-01-01
  • 2011-01-09
相关资源
最近更新 更多