web-dev-qa-db-ja.com

不透明度の低い塗りつぶし長方形を描く

私はC#言語のWindowsフォームアプリケーションで画像を含むPictureBoxを持っています.Pictureboxのある場所にFillRectangleを描画したいのですが、画像ボックスの画像も見る必要があります。この長方形をどのように描画できますかpictureboxの画像を見るために低い不透明度で

25

もしかして:

using (Graphics g = Graphics.FromImage(pb.Image))
{
    using(Brush brush = new SolidBrush(your_color))
    {
        g.FillRectangle(brush , x, y, width, height);
    }
}

またはあなたが使用することができます

Brush brush = new SolidBrush(Color.FromArgb(alpha, red, green, blue))

ここで、alphaは0から255になるため、アルファの値を128にすると、50%の不透明度が得られます。

60
Marco

Graphics画像に基づいてPictureBoxオブジェクトを作成し、必要なものを描画する必要があります。

Graphics g = Graphics.FromImage(pictureBox1.Image);
g.FillRectangle(Brushes.Red, new Rectangle(10, 10, 200, 200))
pictureBox1.Refresh()

または、@ Davide Pariasで提案されているように、Paintイベントハンドラーを使用できます。

private void pictureBox_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.FillRectangle(Brushes.Red, new Rectangle(10, 10, 200, 200));
}
2
Samich