我在向WP7中的SolidColorBrush
对象的Fill
属性分配Rectangle
时遇到问题。
// sets the clock style (1-green, 2-blue, 3-red)
private void SetClockStyle(Int32 style)
{
Color blue = new Color() { R = 0, G = 63, B = 216 };
Color green = new Color() { R = 79, G = 255, B = 0 };
Color red = new Color() { R = 255, G = 39, B = 0 };
switch (style)
{
case 1:
Fill(green);
break;
case 2:
Fill(blue);
break;
case 3:
Fill(red);
break;
default:
break;
}
}
// sets a color
private void Fill(Color color)
{
foreach (Rectangle rect in this.GetRectangles())
{
rect.Fill = new SolidColorBrush(color);
}
foreach (Rectangle rect in this.GetPoints())
{
rect.Fill = new SolidColorBrush(color);
}
}
当我调用SetClockStyle(2)
程序流程正常时,会执行正确的部分。但是矩形没有填充(显示网格的背景颜色)。我尝试设置Fill.Opacity
属性,但没有改变任何东西。我看不出问题出在哪里。通过XAML设置Fill
属性有效,但运行时的动态方法不起作用。
如何为Fill
对象的Rectangle
属性指定特定颜色?
答案 0 :(得分:3)
知道了。问题是Alpha通道的默认值,它被设置为透明。使用类似的东西(注意添加的A值):
Color red = new Color() { R = 255, G = 39, B = 0, A = 255 };
现在alpha通道设置为255,这意味着不透明的纯色。