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 クラス プロパティをいじる必要があります。また、外部のカスタム クラスに依存するサンプル コードを投稿すると、誰かが手助けするのが難しくなります。コードが単独で実行できることを常に確認することをお勧めします。

ペンを宣言した後、これを追加してみてください。

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

次のようになります。

ここに画像の説明を入力

于 2012-12-27T02:27:24.387 に答える