1

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

とった。問題は、透明に設定されているアルファ チャネルのデフォルト値です。次のようなものを使用します (追加された A 値に注意してください):

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

これで、アルファ チャネルが 255 に設定されました。これは、透明でない単色を意味します。

于 2013-04-01T21:34:50.603 に答える