.NET中使用Graphics绘图
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;
namespace Graph
...{
/** <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
...{
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/** <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
...{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/** <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
...{
if( disposing )
...{
if (components != null)
...{
components.Dispose();
}
}
base.Dispose( disposing );
}
Windows Form Designer generated code #region Windows Form Designer generated code
/** <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.White;
this.pictureBox1.Location = new System.Drawing.Point(184, 24);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(200, 216);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// button1
//
this.button1.Location = new System.Drawing.Point(48, 272);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(120, 48);
this.button1.TabIndex = 1;
this.button1.Text = "在窗体上绘图";
this.button1.Click += new System.EventHandler( this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(232, 272);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(120, 48);
this.button2.TabIndex = 2;
this.button2.Text = "在图片框上绘图";
this.button2.Click += new System.EventHandler( this.button2_Click_1);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(408, 342);
this.Controls.AddRange( new System.Windows.Forms.Control[] ...{
this.button2,
this.button1,
this.pictureBox1});
this.Name = "Form1";
this.Text = "Graphics";
this.ResumeLayout( false);
}
#endregion
/** <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
...{
Application.Run( new Form1());
}
protected override void OnPaint(PaintEventArgs e)
...{
Graphics g = e.Graphics;
float x, y,w, h;
x = pictureBox1.Left - 2;
y = pictureBox1.Top - 2;
w = pictureBox1.Width + 4;
h = pictureBox1.Height + 4;
Pen pen= new Pen(Color.Red, 2);
g.DrawRectangle(pen, x, y, w, h);
GraphicsPath gp= new GraphicsPath();
gp.AddRectangle( new Rectangle(10, 10, 100, 100));
}
private void button1_Click( object sender, EventArgs e)
...{
Graphics g= this.CreateGraphics();
g.FillEllipse(Brushes.Blue, 10, 20, 50, 100);
}
private void button2_Click_1( object sender, EventArgs e)
...{
Graphics g= pictureBox1.CreateGraphics();
g.FillEllipse(Brushes.Blue, 10, 20, 50, 100);
}
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;
namespace Graph
...{
/** <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
...{
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/** <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
...{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/** <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
...{
if( disposing )
...{
if (components != null)
...{
components.Dispose();
}
}
base.Dispose( disposing );
}
Windows Form Designer generated code #region Windows Form Designer generated code
/** <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.White;
this.pictureBox1.Location = new System.Drawing.Point(184, 24);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(200, 216);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// button1
//
this.button1.Location = new System.Drawing.Point(48, 272);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(120, 48);
this.button1.TabIndex = 1;
this.button1.Text = "在窗体上绘图";
this.button1.Click += new System.EventHandler( this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(232, 272);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(120, 48);
this.button2.TabIndex = 2;
this.button2.Text = "在图片框上绘图";
this.button2.Click += new System.EventHandler( this.button2_Click_1);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(408, 342);
this.Controls.AddRange( new System.Windows.Forms.Control[] ...{
this.button2,
this.button1,
this.pictureBox1});
this.Name = "Form1";
this.Text = "Graphics";
this.ResumeLayout( false);
}
#endregion
/** <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
...{
Application.Run( new Form1());
}
protected override void OnPaint(PaintEventArgs e)
...{
Graphics g = e.Graphics;
float x, y,w, h;
x = pictureBox1.Left - 2;
y = pictureBox1.Top - 2;
w = pictureBox1.Width + 4;
h = pictureBox1.Height + 4;
Pen pen= new Pen(Color.Red, 2);
g.DrawRectangle(pen, x, y, w, h);
GraphicsPath gp= new GraphicsPath();
gp.AddRectangle( new Rectangle(10, 10, 100, 100));
}
private void button1_Click( object sender, EventArgs e)
...{
Graphics g= this.CreateGraphics();
g.FillEllipse(Brushes.Blue, 10, 20, 50, 100);
}
private void button2_Click_1( object sender, EventArgs e)
...{
Graphics g= pictureBox1.CreateGraphics();
g.FillEllipse(Brushes.Blue, 10, 20, 50, 100);
}
}
}
转载于:https://blog.51cto.com/cnming/223627