Csharp/C Sharp/2D Graphics/Dash Pen

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

All dash styles

<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 (DashStyle dash in Enum.GetValues(typeof(DashStyle)))
     {
       myPen.DashStyle = dash;
       e.Graphics.DrawLine(myPen, 20, y, 100, y);
       e.Graphics.DrawString(dash.ToString(), new Font("Tahoma", 8), Brushes.Black, 120, y - 10);
       y += 30;
     }
     y += 10;
     myPen.StartCap = LineCap.Round;
     myPen.EndCap = LineCap.Round;
     foreach (DashStyle dash in System.Enum.GetValues(typeof(DashStyle)))
     {
       myPen.DashStyle = dash;
       e.Graphics.DrawLine(myPen, 20, y, 100, y);
       e.Graphics.DrawString(dash.ToString() + " (with round caps)", 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>


Draw Polygon with dashed pen

<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 MainForm : System.Windows.Forms.Form
 {
   public MainForm()
   {
     InitializeComponent();
     CenterToScreen();
     SetStyle(ControlStyles.ResizeRedraw, true);  
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(292, 273);
     this.Text = "Pens...";
     this.Resize += new System.EventHandler(this.Form1_Resize);
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.MainForm_Paint);
   }
   static void Main() 
   {
     Application.Run(new MainForm());
   }
   private void MainForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
     Graphics g = e.Graphics;
     // Draw a pruple dashed polygon as well...
     Pen pen3 = new Pen(Color.Purple, 5);
     pen3.DashStyle = DashStyle.DashDotDot;
     g.DrawPolygon(pen3, new Point[]{new Point(30, 140),
                        new Point(265, 200),
                        new Point(100, 225),
                        new Point(190, 190),
                        new Point(50, 330),
                        new Point(20, 180)} );
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
      Invalidate();  
   }
 }


      </source>


Pen dash pattern

<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.FillRectangle(Brushes.White, this.ClientRectangle);
     Pen p = new Pen(Color.Black, 1);
     // The following line creates the custom dash pattern:
     float[] f = { 15, 5, 10, 5 };
     p.DashPattern = f;
     g.DrawRectangle(p, 10, 10, 80, 100);
     p.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }


      </source>


Pen dash style

<source lang="csharp">

 using System;
 using System.Drawing;
 using System.Collections;
 using System.ruponentModel;
 using System.Windows.Forms;
 using System.Data;
 public class Form1 : System.Windows.Forms.Form
 {
   private System.ruponentModel.Container components;
   public Form1()
   {
     InitializeComponent();
     SetStyle(ControlStyles.ResizeRedraw, true);
   }
   protected override void Dispose( bool disposing )
   {
     if( disposing )
     {
       if (components != null) 
       {
         components.Dispose();
       }
     }
     base.Dispose( disposing );
   }
   private void InitializeComponent()
   {
     this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
     this.ClientSize = new System.Drawing.Size(211, 104);
     this.Text = "A Form with Style!";
     this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
   }
   [STAThread]
   static void Main() 
   {
     Application.Run(new Form1());
   }
   private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
   {
     Pen customDashPen = new Pen(Color.Black, 10);
     float[] myDashes = {5.0f, 2.0f, 1.0f, 3.0f};
     customDashPen.DashPattern = myDashes;
     e.Graphics.DrawRectangle(customDashPen, ClientRectangle);
   }
 }


      </source>


Pen Dash style: dash

<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.FillRectangle(Brushes.White, this.ClientRectangle);
     Pen p = new Pen(Color.Black, 1);
     p.DashStyle = DashStyle.Dash;
     g.DrawLine(p, 3, 3, 100, 3);
     p.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>