C# GDI+编程(一)
2021-05-05 18:33
标签:send private bsp 窗口 中间 res 图片 static invalid 窗口刷新的时候,会产生Paint事件,那么我们给这个事件添加一个处理函数。然后在这个函数里画图。就能保证所画的图不被刷新掉, 它可以总是显示。Paint事件对应的委托是:public delegate void PaintEventHandler(object sender, PaintEventArgs e); 示例1:在窗口中间画一根线。(创建WindowsForms应用程序) 示例2:一个填充矩形 示例3:画一张png图片(用PNG是因为可以显示透明的图片,GIF图片也有这个作用) 示例4:用DrawString显示文字 DrawString在Grahpics类里有好几个重载,有的可以让字符串在一个矩形内显示,有的可以使用特定的显示格式。这里就不做详细介绍了。 只讲比较常用的。 看例子吧,处理键盘输入字符事件,在窗口显示输入的字符。如下: C# GDI+编程(一) 标签:send private bsp 窗口 中间 res 图片 static invalid 原文地址:http://www.cnblogs.com/jiangshuai52511/p/7679217.html Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.Black);
//在屏幕中间画一根线
g.DrawLine(p, 0, this.Height / 2, this.Width, this.Height / 2);
//画一个矩形
g.DrawRectangle(p, 50, 50, 200, 100);
//画一个圆
g.DrawEllipse(p, 150, 150, 100, 100);
//手动释放资源
g.Dispose();
p.Dispose();
private void formPaint(Object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
//蓝色画刷
SolidBrush brush = new SolidBrush(Color.FromArgb(0, 0, 255));
//一个矩形
Rectangle rect = new Rectangle(0, 0, 100, 100);
//填充一个矩形
graphics.FillRectangle(brush, rect);
}
private void formPaint(Object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
//加载图片
Image img = Image.FromFile(Application.StartupPath+ @"\111.png");
//图片显示起始位置
Point strPoint=new Point(50,50);
//不限制大小绘制
graphics.DrawImage(img, strPoint);
//缩小图片绘制,限制在一个矩形内
Rectangle rect=new Rectangle(50,50,100,100);
graphics.DrawImage(img, rect);
}
public partial class Form1 : Form
{
public static String strText = "";
public Form1()
{
InitializeComponent();
this.Paint += formPaint;
this.KeyPress += formKeyPress;
}
private void formPaint(Object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
//创建画刷
SolidBrush brush=new SolidBrush(Color.FromArgb(0,255,0));
//创建字体
Font font=new Font("宋体",20f);
//显示字符串,在一个矩形内
graphics.DrawString(strText, font, brush, this.ClientRectangle);
}
private void formKeyPress(object sender, KeyPressEventArgs e)
{
strText += e.KeyChar;
//刷新整个窗口
this.Invalidate();
}
}