如何在 C# 中清除矩形的填充

本文关键字:填充 清除 | 更新日期: 2023-09-27 18:33:36

如何清除矩形的填充?我只想保留边界。

g.FillRectangle(Brushes.Transparent, x, y, w, h);

没有用,带有 alpha 的 aRGB 也没有,我想删除填充,所以只剩下边框。

如何在 C# 中清除矩形的填充

所以你想要的是

g.DrawRectangle(Pens.Black,x,y,w,h);

我认为

编辑:由于OP要求的变化,这不是他想要的答案,尽管它不是不正确的,因此我选择暂时将其留在这里。

设置

剪辑清除后,您必须为图形设置新剪辑,然后将剪辑恢复为正常剪辑。

g.SetClip(new Rectangle(x,y,w,h), CombineMode.Replace);
g.Clear(Color.Transparent);

好的,所以你正在寻找一个选择工具,你可能想首先告诉我们。

创建新的窗口窗体应用程序。

在表单中,事件使用鼠标向下、鼠标向上和鼠标移动

public Point MouseXY = new Point(0, 0);
private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        MouseXY = e.Location;
    }
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            int width = e.Location.X - MouseXY.X;
            int height = e.Location.Y-MouseXY.Y;
            this.Refresh();
            CreateGraphics().DrawRectangle(Pens.Blue, new Rectangle(MouseXY, new Size(width,height)));
        }
    }
    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
        this.Refresh();
    }

这段代码并不完美,我不假装它是。 这将做的是绘制一个蓝色矩形,该矩形从您单击的位置开始并跟随您的鼠标。 它不会绘制负矩形,您必须确定鼠标当前是从起点向左还是向上,然后相应地绘制矩形,但我认为您可以自己弄清楚。 以及矩形不是持久的,尽管我不相信你会希望它持久。