为什么如果我将它放入 Silverlight 下使用的 xaml 字典中,编译器会发现错误。
<Color x:Key="colorBackDark" A="255" R="150" G="170" B="190" />
在 WPF XAML 中一切正常。
顺便说一句,无论使用什么 silverlight 版本,都会出现错误。
看起来这是某种解析器错误。
最佳答案
我假设您遇到的错误类似于以下内容:
Failed to create a 'System.Byte' from the text '255'
Silverlight 中的 XAML 解析器只知道如何处理 double
s、int
s 和 bool
s。 Color
结构体中的A
、R
、G
和B
属性都是byte
s,Silverlight XAML 解析器不知道如何处理。另一方面,WPF 中的 XAML 解析器确实知道如何处理这些值,所以这就是您在 WPF 中没有收到错误的原因。
MSDN documentation for the Color
struct列出了在 Silverlight 的 XAML 中创建 Color
值的多种方法。
一个 similar question前段时间被问及为什么 float
s 也不能在 Silverlight 的 XAML 中使用。
关于Silverlight XAML 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281706/