我试图管理VS2012中内置的Silverlight 5应用程序中的资源。主题化的目的,我在我的各种自定义模板掏出所有的颜色代码,并把它们转移到一个单独的资源文件,使他们能够独立于主模板被改变。Silverlight - 管理颜色资源 - 错误
我已经声明它们如下:
<Color x:Name="ButtonForeground">#FFFFFF</Color>
<Color x:Name="ButtonBackground">#004760</Color>
<Color x:Name="ButtonAltBackground">#0089B7</Color>
虽然这个建造和运行正常,这些线有两个“错误”是拿出每当我生成项目:
- 不能添加内容类型的对象“颜色”,而处理初始化字符串“#ColorCode”遇到
- 的TypeConverter语法错误。在通过TypeConverter创建的对象上不允许使用元素属性。
在定义了30种颜色的情况下,即使项目的构建和运行良好,在错误列表窗口中也有60个构建错误,并且这会在实际出现错误时减损。
这也会导致我的颜色ResourceDictionary无法被引用,因为它们无法找到带有颜色的主题文件,并且因为依赖它们的字典不起作用, m无法依次引用它们,所以我的模板都找不到。 (这是导致另一个错误,超过100不停止应用程序构建和运行)
为什么这些错误在这里,什么我需要做的,让他们离开任何人都可以向我解释?
更新:我也曾尝试使用下面的方法,它具有与XAML没有问题,至于资源字典关注的作品,但在运行时抛出异常:
<Color x:Name="ButtonForeground" R="255" G="255" B="255"><!--#FFFFFF--></Color>
<Color x:Name="ButtonBackground" R="0" G="71" B="96"><!--#004760--></Color>
<Color x:Name="ButtonAltBackground" R="0" G="137" B="183"><!--#0089B7--></Color>
这看起来与此处发布的错误有关:Silverlight XAML BUG
更新2: 我已经尝试了以下两种方法,两种方法工作,但注释掉的版本会导致错误,并且因为这个原因我删除了它。
<VisualState x:Name="Normal">
<Storyboard>
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Background" Storyboard.TargetName="BtnBorder">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ButtonBackgroundBrush}"/>
</ObjectAnimationUsingKeyFrames>
<!--<ColorAnimation Duration="0:0:0.1" To="{StaticResource ButtonBackgroundColor}" Storyboard.TargetProperty="Color" Storyboard.TargetName="RbBorderBackground"/>-->
</Storyboard>
活节直接指向一个边界对象,并使用它的画笔属性,注释掉版本指向由边境使用的画笔,并使用颜色属性。已注释的版本动画顺利,看起来不错,目前的版本只是立即刷掉画笔。
感谢
特里斯坦
Arg。完成新手错误:( – Tristan 2013-04-26 11:19:06
犯错误的好处是你从他们那里学习:D – Tonio 2013-04-26 12:40:43