0

C# で新しいアプリケーションを開発していますが、助けが必要です。

私はこれを作りたい: 何かの上に線を引く。具体的には、コードで生成したピクチャ ボックスがいくつかありますが、アプリケーションの開始時には表示されません。

これは、私が望む場合の例です:

ここに画像の説明を入力してください

そして、私がこのように欲しいもの:

ここに画像の説明を入力してください

最初の行を描画するために使用しているコードは次のとおりです。

Graphics g;
Pen p;

void drawline(){
   g = this.CreateGraphics();
   p = new System.Drawing.Pen(Color.Red, 15);
   g.DrawLine(p, new Point(10, 150), new Point(900, 150));
}

PS: 2行目ですみません(ペイントで描いています:))

4

2 に答える 2

1

フォームに画像ボックスを配置する代わりに、線を描く前にグラフィックスに画像を描くことができます。

g.DrawImage(image, point)

多分これは何かにつながる可能性がありますか?

    Bitmap _bitmap = new Bitmap(PictureBox1.Width, PictureBox1.Height);

    Dictionary<int, Image> _images = new Dictionary<int, Image>();
    System.Drawing.Pen _redPen = new System.Drawing.Pen(Color.Red, 15);
    bool _linePresent = false;

    int[] _imageIndex = { 1, 2, 1 };

    public void Init()
    {
        _images.Add(1, Image.FromFile("Melon.png"));
        _images.Add(2, Image.FromFile("Pineapple.png"));
        PictureBox1.Image = _bitmap;
    }

    public void Update()
    {
        Graphics graphics = Graphics.FromImage(_bitmap);
        graphics.Clear(Color.White);
        graphics.DrawImage(_images[_imageIndex[0]], 50, 100);
        graphics.DrawImage(_images[_imageIndex[1]], 350, 100);
        graphics.DrawImage(_images[_imageIndex[2]], 650, 100);

        if (_linePresent)
            graphics.DrawLine(_redPen, new Point(10, 150), new Point(900, 150));

    }

イメージの更新/更新に問題が発生する可能性があります。しかし、私はそれをテストしませんでした。

于 2013-08-08T13:45:29.757 に答える
1

実際には、画像の上にある Rectangle (赤い色のラベル) を使用できます。グラフィックス コマンドを使用するよりもはるかに簡単です。

于 2013-08-08T13:48:52.080 に答える