Csharp/C Sharp/2D Graphics/Line Cap

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

All LineCap illustration

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyles; using System.Drawing.Drawing2D; public class Form1 : Form {

     public Form1() {
           InitializeComponent();
           
     }
   private void SimpleStyleRenderer_Paint(object sender, PaintEventArgs e)
   {
     Pen myPen = new Pen(Color.Blue, 10);
     int y = 20;
     foreach (LineCap cap in Enum.GetValues(typeof(LineCap)))
     {
       myPen.StartCap = cap;
       myPen.EndCap = cap;
       e.Graphics.DrawLine(myPen, 20, y, 100, y);
       e.Graphics.DrawString(cap.ToString(), new Font("Tahoma", 8), Brushes.Black, 120, y - 10);
       y += 30;
     }
   }
   private void InitializeComponent()
   {
     this.SuspendLayout();
     // 
     // SimpleStyleRenderer
     // 
     this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     this.ClientSize = new System.Drawing.Size(384, 353);
     this.Name = "SimpleStyleRenderer";
     this.Text = "SimpleStyleRenderer";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.SimpleStyleRenderer_Paint);
     this.ResumeLayout(false);
   }
     [STAThread]
     static void Main()
     {
       Application.EnableVisualStyles();
       Application.Run(new Form1());
     }

}


      </source>


Line cap: Arrow Anchor, Round

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {      
     Graphics g = e.Graphics;
     g.SmoothingMode = SmoothingMode.AntiAlias;
     g.FillRectangle(Brushes.White, this.ClientRectangle);
     Pen p = new Pen(Color.Black, 10);
     p.StartCap = LineCap.Round;
     p.EndCap = LineCap.ArrowAnchor;
     g.DrawLine(p, 30, 30, 80, 30);
     p.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>


LineCap: RoundAnchor

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
           Graphics g = e.Graphics;
           Pen p = new Pen(Color.Brown, 15);

           p.StartCap = LineCap.RoundAnchor ;
           p.EndCap = LineCap.RoundAnchor ;
           g.DrawLine(p,30, 30, Width-50, 30);
   }
 }


      </source>


Line Cap style

<source lang="csharp"> namespace PenCapApp {

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "Pen Cap App";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
     Graphics g = e.Graphics;
     Pen thePen = new Pen(Color.Black, 10);
     int yOffSet = 10;
     Array obj = Enum.GetValues(typeof(LineCap));
     for(int x = 0; x < obj.Length; x++)
     {
       LineCap temp = (LineCap)obj.GetValue(x);
       thePen.StartCap = temp;
       thePen.EndCap = temp;
       g.DrawString(temp.ToString(), new Font("Times New Roman", 10), 
         new SolidBrush(Color.Black), 0, yOffSet);
       g.DrawLine(thePen, 100, yOffSet, Width - 50, yOffSet);
       yOffSet += 40;
     }
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }

}


      </source>


Pen StartCap: LineCap.ArrowAnchor

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
           Graphics g = e.Graphics;
           Pen p = new Pen(Color.Brown, 15);

           p.StartCap = LineCap.ArrowAnchor ;
           p.EndCap = LineCap.ArrowAnchor ;
           g.DrawLine(p,30, 30, Width-50, 30);
  
   }
 }


      </source>


Pen StartCap: LineCap.Round

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
           Graphics g = e.Graphics;
           Pen p = new Pen(Color.Brown, 15);

           p.StartCap = LineCap.Round  ;
           p.EndCap = LineCap.Round ;
           g.DrawLine(p,30, 30, Width-50, 30);
   }
 }


      </source>


Pen Start Cap = Line Cap RoundAnchor

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
           Graphics g = e.Graphics;
           Pen p = new Pen(Color.Brown, 15);

           p.StartCap = LineCap.RoundAnchor ;
           p.EndCap = LineCap.RoundAnchor ;
           g.DrawLine(p,30, 30, Width-50, 30);
   }
 }


      </source>


Pen Start Cap: LineCap.SquareAnchor

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
           Graphics g = e.Graphics;
           Pen p = new Pen(Color.Brown, 15);

           p.StartCap = LineCap.SquareAnchor;
           p.EndCap = LineCap.SquareAnchor ;
           g.DrawLine(p,30, 30, Width-50, 30);
   }
 }


      </source>


Pen Start Cap: Line Cap Triangle

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
           Graphics g = e.Graphics;
           Pen p = new Pen(Color.Brown, 15);

           p.StartCap = LineCap.Triangle;
           p.EndCap = LineCap.Triangle;
           g.DrawLine(p,30, 30, Width-50, 30);
   }
 }


      </source>