1

我在将 a 分配给WP7 中对象SolidColorBrushFill属性时遇到问题。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

4

1 回答 1

3

知道了。问题是 alpha 通道的默认值,设置为透明。使用这样的东西(注意添加的 A 值):

Color red = new Color() { R = 255, G = 39, B = 0, A = 255 };

现在 alpha 通道设置为 255,这意味着不透明的纯色。

于 2013-04-01T21:34:50.603 回答