- 我们知道使用
Graphics.Clear()
可以清除整个背景;但是想要清除指定区域的背景就很难办; - 下面的方法可以清除指定区域的背景或者已经绘制的内容,并以指定的格式进行替换:
public void ClearBackground(Vector2[] points)
{
//将Vector2格式转换为PointF[]格式
var offsettedPoints = PointsOffset(points);
//模式转换为'CompositingMode.SourceCopy'
Graphics.CompositingMode = CompositingMode.SourceCopy;
//用透明色替换指定的区域
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(0, 0, 0, 0));
Graphics.FillPolygon(solidBrush, offsettedPoints);
//模式转换为'CompositingMode.SourceOver',这样后面可以进行绘图
Graphics.CompositingMode = CompositingMode.SourceOver;
}