院生エンジニアのにっき

  • Change style to Blue
  • Change style to Red
  • Change style to Green
  • Change style to Pink

C#のGraphicsに大きな矢印を描写する   2008-02-12

今回はC#のGraphicsにて大きな矢印を描写する方法を紹介します。

Penオブジェクトには標準でEndCapプロパティが備わっていてSystem.Drawing.Drawing2D.LineCap.ArrowAnchorを選択することでやじるしを描写することは可能です。

  1. private void pictureBox1_Paint(object sender, PaintEventArgs e) {
  2.   Pen pen = new Pen(Color.Black, 5);
  3.   pen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
  4.   e.Graphics.DrawLine(pen, 0, 0, 100, 100);
  5.   pen.Dispose();
  6. }

小さな矢印

しかし、見たらわかるのですが、矢印はとても小さくわかりにくいです(マウスアイコンの矢印の方が大きい??)。

色々探してみたら矢印の描画&管理 - C#、VB.NET、ASP.NET、C++/CLI、Javaに解決策が載っていました。

CustomEndCapを利用するようです(Pen.CustomEndCap プロパティ (System.Drawing))。

pen.CustomEndCap = new System.Drawing.Drawing2D.AdjustableArrowCap(4, 4);

ちょっと大きな矢印

それでもまだ小さい場合は

pen.CustomEndCap = new System.Drawing.Drawing2D.AdjustableArrowCap(10, 5);

大きな矢印

AdjustableArrowCapは第一引数がwidthで第二引数がheightになっており、これらを調整することで長細い矢印や横長な矢印を作成することが出来ます。


コメントを書く
  • k#(2008 12/18(木) 16:42)
    参考させていただきました。