2

我应该使用什么画笔来绘制具有白色内部线条和矩形周边线条的矩形,例如下面的高程。

form1 winform 是我正在处理的,winform 后面的图像是我需要矩形在我的 winform 中查看的方式。

为了使问题更容易,我怎样才能用白色填充矩形的内部?

如何用白色填充矩形的线条?我不需要填充矩形的内部,我需要用白色填充构成矩形的 4 条线的一部分。

CAD 示例

       void BuildShopDrawing(ElevationResponse elevation)
    {

        float penWidth = (float)((2f / 12f) * PIXELS_PER_FOOT);
        Pen blackPen = new Pen(Color.FromArgb(40, 84, 149), penWidth);
        Bitmap canvas = new Bitmap((((int)elevation.TotalWidthFeet) * PIXELS_PER_FOOT) + 55, (((int)elevation.TotalHeightFeet) * PIXELS_PER_FOOT) + 25);
        Graphics dc = Graphics.FromImage(canvas);

        RectangleF[] bays = new RectangleF[elevation.Bays.Count];
        float x = 10F;
        float width = 0F;
        float height = 0F;

        for (int i = 0; i < elevation.Bays.Count; i++)
        {
            if (i > 0)
            {
                x += (float)((elevation.Bays[i - 1].WidthInches / 12) * PIXELS_PER_FOOT);
            }
            width = (float)(elevation.Bays[i].WidthInches / 12) * PIXELS_PER_FOOT;
            height = (float)(elevation.Bays[i].HeightInches / 12) * PIXELS_PER_FOOT;
            bays[i] =
                 new RectangleF(new PointF(x, 10),
                 new SizeF(width, height));
        }

        dc.DrawRectangles(blackPen, bays);
        this.picBx.Image = canvas;
        this.Size = new System.Drawing.Size(canvas.Width + 10, canvas.Height + 50);
    }
4

1 回答 1

3

您需要更彻底地查看Pen 类,更具体地说是CompoundArray 属性,它会为您提供您想要的东西,您将需要使用 Pen Class 的其他一些属性来获得正确的转换。作为一个旁注,当您发布依赖于外部自定义类的示例代码时,您会更难有人提供帮助,最好确保代码可以自行运行。

在您声明您的笔后尝试添加它。

float[] cmpArray = new float[4]{0.0F, 0.2F, 0.7F, 1.0F};
blackPen.CompoundArray = cmpArray;

它看起来像这样:

在此处输入图像描述

于 2012-12-27T02:27:24.387 回答