C# 图形在区域上绘制透明矩形

Dan*_*nny 1 c# graphics

我有两个图像彼此层叠,并且希望能够清除顶部图像的一部分。通常,如果我想清除图像的一部分,我只需将其绘制为背景颜色即可

g.FillRectangle(Brushes.White,x,y,width,height);
Run Code Online (Sandbox Code Playgroud)

但如果我在顶部图像上这样做,底部图像的区域就会被白色矩形覆盖。我尝试做

g.FillRectangle(Brushes.Transparent,x,y,width,height);
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有清除之前所有内容的区域。有什么方法可以使该区域中的像素透明吗?

小智 5

//using System.Drawing.Drawing2D;

g.FillRectangle(Brushes.White,x,y,width,height);
g.CompositingMode = CompositingMode.SourceCopy;    
g.FillRectangle(Brushes.Transparent,x,y,width,height);
Run Code Online (Sandbox Code Playgroud)