C#给PictureBox一个Image的形状

时间:2014-12-17 13:02:56

标签: c# winforms transparency picturebox shape

我想给pictureBox一个我拥有的图像的形状。偏离路线的图像是矩形的,但应该忽略背景颜色,这会产生所需的形状。所以,如果在白色背景上有香蕉的图片,我应该在最后有一个香蕉形状的pictureBox。这是必要的,这样我就可以在AxWMPLib Mediaplayer前面移动形状PictureBox,而不需要周围的矩形香蕉覆盖了所有视频。

我的方法是创建一个新类,扩展PictureBox,然后将区域设置为形状。问题是,我不知道如何塑造形状。

class ShapedPBox : PictureBox
{
    public ShapedPBox()
    {
         this.Paint += this.shapedPaint;
    }

    void shapedPaint(object sender, paintEventArgs e)
    {
        System.Drawing.Drawing2D.GraphicsPath gP = new System.Drawing.Drawing2D.GraphicsPath();
        //do something to give gP.addPicture? perhaps something with transparency key?

        this.Region = new Region(graphicsPath);
    }
    public Image image;
}

1 个答案:

答案 0 :(得分:0)

您可以将SizeMode的{​​{1}}属性设置为PictureBox,这样可以删除默认的背景颜色。当然,图像会根据图像和控件尺寸缩小或增大。

如果您无法调整图像大小并且知道背景的位置,则可以使用以下代码。它所做的只是它从图像边缘获取颜色并将其设置为图片框的背景颜色。

StretchImage