博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GDI+的基本使用
阅读量:6918 次
发布时间:2019-06-27

本文共 2137 字,大约阅读时间需要 7 分钟。

Graphics g = e.Graphics; // 创建画板Pen p = new Pen(Color.Blue, 1); // 画笔颜色及宽度g.DrawLine(p, 10, 10, 110, 110); // 绘制直线g.DrawLine(p, 210, 10, 110, 110);g.DrawRectangle(p, 10, 10, 100, 100); // 绘制矩形g.DrawRectangle(p, 110, 10, 100, 100);g.DrawEllipse(p, 10, 10, 200, 100); // 根据外接矩形绘制椭圆g.Dispose();p.Dispose();

Result:

Pen的属性主要有: Color(颜色),DashCap(短划线终点形状),DashStyle(虚线样式),EndCap(线尾形状), StartCap(线头形状),Width(粗细)等。

Graphics g = e.Graphics; // 创建画板Pen p = new Pen(Color.Blue, 5); // 画笔颜色及宽度p.DashStyle = DashStyle.Dot; // 定义虚线的样式为点g.DrawLine(p, 10, 10, 200, 10);p.DashPattern = new float[] { 2, 1 }; // 设置短划线和空白部分的数组g.DrawLine(p, 10, 20, 200, 20);p.DashStyle = DashStyle.Solid; // 恢复实线p.EndCap = LineCap.ArrowAnchor; // 实现箭头,只对非封闭线有效g.DrawLine(p, 10, 30, 200, 30);g.Dispose();p.Dispose();

Result:

下面简单实现一下Brush的使用,

Graphics g = this.CreateGraphics();Rectangle rect = new Rectangle(10, 10, 50, 50);//定义矩形,参数为起点横纵坐标以及其长和宽SolidBrush b1 = new SolidBrush(Color.Blue);//定义单色画刷          g.FillRectangle(b1, rect); //填充矩形g.DrawString("字符串", new Font("宋体", 10), b1, new PointF(90, 10)); // 字符串TextureBrush b2 = new TextureBrush(Image.FromFile(@"D:\b.jpg")); // 使用图片填充rect.Location = new Point(10, 70); // 更改矩形的起点坐标rect.Width = 200; // 更改矩形的宽rect.Height = 200; // 更改矩形的高g.FillRectangle(b2, rect);rect.Location = new Point(230, 10);LinearGradientBrush b3 = new LinearGradientBrush(rect, Color.Yellow, Color.Red, LinearGradientMode.Horizontal); // 用渐变色填充g.FillRectangle(b3, rect);

Result:

下面实现对坐标轴的变换,默认坐标轴原点为左上角,正X轴向右,正Y轴向下。

using (Graphics g = this.CreateGraphics()){    Pen p = new Pen(Color.OrangeRed, 1);    //转变坐标轴角度    for (float i = 1; i < 90; i += 0.1f)    {        g.RotateTransform(i); // 每旋转0.1度画一条线        g.DrawLine(p, 0, 0, i, 0);    }    g.ResetTransform();    g.TranslateTransform(100, 100); // 平移坐标轴    g.DrawLine(p, 0, 0, 100, 0);    g.ResetTransform();    g.TranslateTransform(100, 200); // 先平移到指定坐标,然后进行度旋转    for (int i = 0; i < 8; i++)    {        g.RotateTransform(45);        g.DrawLine(p, 0, 0, 100, 0);    }}

Result:

GDI+ 图形设备接口普拉斯(Graphic Device Interface Plus)属于非托管资源,应手动释放。

转载于:https://www.cnblogs.com/jizhiqiliao/p/9962214.html

你可能感兴趣的文章
oracle 11g rac
查看>>
编译php时遇到的错误
查看>>
我的友情链接
查看>>
如何解开开机密码?
查看>>
BGP的基本原理
查看>>
CentOS DNS resolv重启无效的解决方法
查看>>
M3外围电路设计若干问题
查看>>
python分布式进程
查看>>
zend studio 12.1更换work space方法
查看>>
Dism++安装win10体验
查看>>
mybatis 基本配置
查看>>
jdk8.0环境变量配置教程
查看>>
Java程序员从笨鸟到菜鸟之(六十六)细谈struts2(十二)struts2国际化底层大揭秘...
查看>>
hibernate集合映射inverse和cascade详解
查看>>
ubuntu linux系统中查看本机cpu和内存信息的命令
查看>>
System Center 2012R2之SCOM监控SQL DB服务器系统
查看>>
python进程池
查看>>
Linux面试题附答案
查看>>
面向开发人员的Android4.1新特点
查看>>
我的友情链接
查看>>