1

我有一个转换器,可以根据某些状态项确定颜色。我打算调整颜色、不透明度等,但甚至无法让颜色与初学者相匹配。

问题:为什么下面两行代码的结果不等效?我将以格林为例。当我运行第一个产生正常的纯绿色时,第二个是浅绿色,具有明确的不透明度/透视:

return new SolidColorBrush(Colors.Green); 

return new SolidColorBrush{Color = new Color{A = 100, B = 0, G = 128, R = 0}};

作为测试,当我在 Blend 中创建一个矩形并用绿色填充它时:

<Rectangle Fill="Green" 

我看到 R 是 0,G 是 128,B 是 0,A 是 100%

4

2 回答 2

2

A不是百分比,它是一个字节值,如R,GB. 您必须指定255100% 的不透明度。

于 2013-08-26T15:28:03.750 回答
2

答案是 alpha 通道输入参数不是百分比。您必须将其设置为最大值 255,如下所示:

return new SolidColorBrush{Color = new Color{A = 255, B = 0, G = 255, R = 0}};
于 2013-08-26T15:29:20.407 回答