Csharp/C Sharp/2D Graphics/Hatch Brush

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

Hatch Brush: cross

<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 = "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;
     HatchBrush hb = new HatchBrush(HatchStyle.Cross,Color.White,Color.Black);
     g.FillRectangle(hb, this.ClientRectangle);
     hb.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>


HatchBrush: HatchStyle DashedHorizontal

<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;
           HatchBrush hb = new HatchBrush(HatchStyle.DashedHorizontal,Color.AntiqueWhite ,Color.Black);
           g.FillEllipse(hb,30, 30, Width-50, 30);
       }
 }
          
      </source>


HatchBrush: HatchStyle LargeCheckerBoard

<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;
           HatchBrush hb = new HatchBrush(HatchStyle.LargeCheckerBoard,Color.AntiqueWhite ,Color.Black);
           g.FillEllipse(hb,30, 30, Width-50, 30);
       }
 }


      </source>


HatchBrush: HatchStyle Plaid

<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;
           HatchBrush hb = new HatchBrush(HatchStyle.Plaid, Color.AntiqueWhite ,Color.Black);
           g.FillEllipse(hb,30, 30, Width-50, 30);
       }
 }


      </source>


HatchBrush: HatchStyle ZigZag

<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;
           HatchBrush hb = new HatchBrush(HatchStyle.ZigZag,Color.AntiqueWhite ,Color.Black);
           g.FillEllipse(hb,30, 30, Width-50, 30);
       }
 }
          
      </source>


Hatch Brush Rendering Origin

<source lang="csharp"> using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;

class HatchBrushRenderingOrigin: Form {

    public static void Main()
    {
         Application.Run(new HatchBrushRenderingOrigin());
    }
    public HatchBrushRenderingOrigin()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }        
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         HatchBrush hbrush = new HatchBrush(HatchStyle.HorizontalBrick, 
                                            Color.White);
         for (int i = 0; i < 10; i++)
         {
              grfx.RenderingOrigin = new Point(i * cx / 10, i * cy / 10);
  
              grfx.FillRectangle(hbrush, i * cx / 10, i * cy / 10, 
                                         cx / 8, cy / 8);
         }
    }

}

</source>


Hatch Brush Style: WideUpwardDiagonal

<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 = "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;
     g.FillRectangle(Brushes.White, this.ClientRectangle);
     HatchBrush hb = new HatchBrush(
          HatchStyle.WideUpwardDiagonal,
          Color.White,
          Color.Black);
     Pen hp = new Pen(hb, 20);
     g.DrawRectangle(hp, 15, 15, 200, 200);
     hb.Dispose();
     hp.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }


      </source>


List all Hatch Brush styles

<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.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;
     int yOffSet = 10;
     Array obj = Enum.GetValues(typeof(HatchStyle));
     for(int i = 0; i < 10; i++)
     {
       HatchStyle temp = (HatchStyle)obj.GetValue(i);
       HatchBrush theBrush = new HatchBrush(temp, Color.White, Color.Black);      
       
       g.DrawString(temp.ToString(), new Font("Times New Roman", 10), 
         new SolidBrush(Color.Black), 0, yOffSet);
       g. FillEllipse(theBrush, 150, yOffSet, 200, 25);
       yOffSet += 40;
     }
   }
 }


      </source>


Overlapping Hatch Brushes

<source lang="csharp"> using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;

class OverlappingHatchBrushes: Form {

    public static void Main()
    {
         Application.Run(new OverlappingHatchBrushes());
    }
    public OverlappingHatchBrushes()
    {
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }      
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         HatchBrush hbrush = new HatchBrush(HatchStyle.HorizontalBrick, 
                                            Color.White);
         for (int i = 0; i < 10; i++)
              grfx.FillRectangle(hbrush, i * cx / 10, i * cy / 10, 
                                         cx / 8, cy / 8);
    }

}

</source>


Use HatchBrush to draw String

<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;
 using System.Drawing.Imaging;
 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);
     Font f = new Font("Times New Roman", 48, FontStyle.Bold);
     HatchBrush hb = new HatchBrush(HatchStyle.Cross, Color.White, Color.Black);
     g.DrawString("www.nfex.ru", f, hb, 0, 0);
     f.Dispose();
   }
   private void Form1_Resize(object sender, System.EventArgs e)
   {
     Invalidate();
   }
 }
          
      </source>