注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。
線を描画するときに使用するPenオブジェクトのEndCapプロパティをLineCap.ArrowAnchorにするだけで、簡単に矢印が描けます。なお線の描き方に関しては、「線を描く」や「曲線を描く」等をご覧ください。
EndCapプロパティは線の終点で使用するパターン(キャップスタイル)を指定するものです。同様にStartCapプロパティで始点のキャップスタイルも指定できます。
実際にStartCapとEndCapプロパティをいろいろ変えて直線を描いてみましょう。
'Imports System.Drawing 'Imports System.Drawing.Drawing2D 'がソースファイルの一番上に書かれているものとする '描画先とするImageオブジェクトを作成する Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height) 'ImageオブジェクトのGraphicsオブジェクトを作成する Dim g As Graphics = Graphics.FromImage(canvas) 'Penオブジェクトの作成(幅10の黒色) Dim blackPen As New Pen(Color.Black, 10) '終点に矢印をつける blackPen.EndCap = LineCap.ArrowAnchor '線を描画 g.DrawLine(blackPen, 10, 10, 100, 10) 'StartCapとEndCapを変更する blackPen.StartCap = LineCap.Flat blackPen.EndCap = LineCap.DiamondAnchor '線を描画 g.DrawLine(blackPen, 10, 30, 100, 30) 'StartCapとEndCapを変更する blackPen.StartCap = LineCap.Round blackPen.EndCap = LineCap.RoundAnchor '線を描画 g.DrawLine(blackPen, 10, 50, 100, 50) 'StartCapとEndCapを変更する blackPen.StartCap = LineCap.Square blackPen.EndCap = LineCap.SquareAnchor '線を描画 g.DrawLine(blackPen, 10, 70, 100, 70) 'StartCapとEndCapを変更する blackPen.StartCap = LineCap.NoAnchor blackPen.EndCap = LineCap.Triangle '線を描画 g.DrawLine(blackPen, 10, 90, 100, 90) 'リソースを解放する blackPen.Dispose() g.Dispose() 'PictureBox1に表示する PictureBox1.Image = canvas
//using System.Drawing; //using System.Drawing.Drawing2D; //がソースファイルの一番上に書かれているものとする //描画先とするImageオブジェクトを作成する Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height); //ImageオブジェクトのGraphicsオブジェクトを作成する Graphics g = Graphics.FromImage(canvas); //Penオブジェクトの作成(幅10の黒色) Pen blackPen = new Pen(Color.Black, 10); //終点に矢印をつける blackPen.EndCap = LineCap.ArrowAnchor; //線を描画 g.DrawLine(blackPen, 10, 10, 100, 10); //StartCapとEndCapを変更する blackPen.StartCap = LineCap.Flat; blackPen.EndCap = LineCap.DiamondAnchor; //線を描画 g.DrawLine(blackPen, 10, 30, 100, 30); //StartCapとEndCapを変更する blackPen.StartCap = LineCap.Round; blackPen.EndCap = LineCap.RoundAnchor; //線を描画 g.DrawLine(blackPen, 10, 50, 100, 50); //StartCapとEndCapを変更する blackPen.StartCap = LineCap.Square; blackPen.EndCap = LineCap.SquareAnchor; //線を描画 g.DrawLine(blackPen, 10, 70, 100, 70); //StartCapとEndCapを変更する blackPen.StartCap = LineCap.NoAnchor; blackPen.EndCap = LineCap.Triangle; //線を描画 g.DrawLine(blackPen, 10, 90, 100, 90); //リソースを解放する blackPen.Dispose(); g.Dispose(); //PictureBox1に表示する PictureBox1.Image = canvas;
結果は次のようになります。