C#Draw

命名空间

using System.Draw;

using System.Draw.Drawing2D;

在form等控件的 事件中 添加 paint事件

///////画各种形状(空心)///////

e.Graphics.Clear(Color.AliceBlue);//清楚整个绘画面并以制定的颜色(这里是爱丽丝蓝--Color.AliceBlue)填充

e.Graphics.DrawArc();//画弧线

e.Graphics.DrawCurve();//不闭合曲线

e.Graphics.DrawClosedCurve();//闭合的曲线

e.Graphics.DrawEllipse(pen, 80, 80, 150, 150);//画一个椭圆--如果宽和高相等则是一个正圆

Image img = Image.FromFile("clumsy-smurf-icon.png");//通过图片名称获得图片
e.Graphics.DrawImage(img,20,20);//画图片

e.Graphics.DrawRectangle();//画矩形 

//画文字

string s = "红鲤鱼与绿鲤鱼与驴";
Font font = new System.Drawing.Font("隶书",18);
SolidBrush brush = new SolidBrush(Color.Cyan);
e.Graphics.DrawString(s, font, brush,200,50);

//画渐变色文字

string s = "红鲤鱼与绿鲤鱼与驴";
Font font = new System.Drawing.Font("隶书",18);
SolidBrush brush1 = new SolidBrush(Color.Cyan);//常规颜色
Point point1 = new Point(0,0);//起始点1与点2之间距离越近变换的越频繁
Point point2 = new Point(20,40);
LinearGradientBrush brush2 = new LinearGradientBrush(point1, point2, Color.DarkCyan, Color.DeepPink);//渐变色
e.Graphics.DrawString(s, font, brush2,200,50);

实例:验证码

 1         private void pictureBox1_Paint(object sender, PaintEventArgs e)//装验证码的picturebox
 2         {
 3             _IdentifyingCode = "";
 4             string str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQISTUVWXYZ0123456789";
 5             Random rand = new Random();
 6             for (int i = 0; i < 4; i++)//截取四位验证码
 7             {
 8                 int start = rand.Next(str.Length);
 9                 string s = str.Substring(start, 1);
10                 _IdentifyingCode += s;
11             }
12             //渐变色
13             Point startpoint = new Point(0, 0);
14             Point endpoint = new Point(80, 45);
15             LinearGradientBrush brush = new LinearGradientBrush(startpoint, endpoint, Color.LightGreen, Color.Yellow);
16             //SolidBrush brush = new System.Drawing.SolidBrush(Color.Chocolate);//实线
17             Font font = new System.Drawing.Font("Buxton Sketch",16);
18             e.Graphics.DrawString(_IdentifyingCode, font, brush, 5, 12);
19         }

////////画各种形状(实心)///////

同画空心图形把代码中的Draw改为Fill,如:e.Graphics.FillPie();//画一个实心扇形

时间: 2024-12-24 11:12:27

C#Draw的相关文章

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+

[Android FrameWork 6.0源码学习] View的重绘过程之Draw

View绘制的三部曲,测量,布局,绘画现在我们分析绘画部分测量和布局 在前两篇文章中已经分析过了.不了解的可以去我的博客里找一下 下面进入正题,开始分析调用以及函数原理 private void performDraw() { if (mAttachInfo.mDisplayState == Display.STATE_OFF && !mReportNextDraw) { return; } final boolean fullRedrawNeeded = mFullRedrawNeede

View的draw机制

View:1.draw//绘制一个View以及他的子View.最好不要覆写该方法,应该覆写onDraw方法来绘制自己.public void draw(Canvas canvas); public void draw(Canvas canvas) {       1.绘制 backgroud(drawBackground)  ;       2.如果需要的话,保存canvas的layer,来准备fading ;       3.绘制view的content(onDraw方法);       4.

[转]ExtJs4 笔记(13) Ext.menu.Menu 菜单、Ext.draw.Component 绘图、Ext.resizer.Resizer 大小变更

作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律责任. 本篇讲解菜单.绘图.还有大小变更控件.菜单控件可以附加到各种其他控件中,比如按钮.工具栏等,甚至可以直接通过通过右键打开(模拟右键菜单):ext对绘图的支持可以让我们通过js来绘图:大小变更控件可以让各种html元素获取可变更大小的能力.下面我们一一详细介绍. 一.Ext.menu.Menu

Cocos2d-x Update Draw 执行

先抛出结果,Update先于Draw执行. 以Android平台来分析 找到Cocos2dRender.java 找到函数 public void onDrawFrame(final GL10 gl) 这是Android OpenGL的刷帧函数,在里面Cocos2d-x执行了Native函数 Cocos2dxRenderer.nativeRender(); 找打Jni目录 Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp JNIEXPORT void JNIC

android6.0 Activity(五) Activity的测量(Measure)、布局(Layout)和绘制(Draw)

 原文:http://blog.csdn.net/luoshengyang/article/details/8372924   http://blog.csdn.net/feiduclear_up/article/details/46772477.在这两者基础上改动了一下. Android应用程序窗口的绘图表面在创建完成之后,我们就可以从上到下地绘制它里面的各个视图了,即各个UI元素了.不过在绘制这些UI元素之前,我们还需要从上到下地测量它们实际所需要的大小,以及对它们的位置进行合适的安排,

Android View体系(八)从源码解析View的layout和draw流程

相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源码解析Scroller Android View体系(五)从源码解析View的事件分发机制 Android View体系(六)从源码解析Activity的构成 Android View体系(七)从源码解析View的measure流程 前言 上一篇文章我们讲了View的measure的流程,接下来我们

AS3中BitmapData的draw()平移转换

要绘制对象的定位点不在图像的左上角时,draw需要平移转换 var mc:MovieClip; var rect:Rectangle = mc.getBounds(mc); var bmd:BitmapData=new BitmapData(int(rect.width.toFixed()) ,int(rect.height.toFixed()),true,0); bmd.draw(mc, new Matrix(1, 0, 0, 1,- rect.x, - rect.y)); stage.add

[新手向]Android修图工具Draw 9-patch使用小结(附ubuntu快捷截图方法)

今天做项目,素材图遇到点问题,然后老大给我讲了讲android下面图片格式.9.png和draw 9-patch的用法,感觉很清楚也很有用,所以记录一下. 关于 9-patch的介绍我就不说了,网上一大堆.下面根据我做android项目的经历一点点来认识它的作用. 首先,先看看项目资源列表: 好了,这个文件夹放着我的项目资源. 那么你发现没有,这里面的图片有一个规律:凡是后缀为.9.png的图片都有黑边,而.png的图片就很正常. 用图片浏览器打开再看看: 这是正常图片(放大了好多) 这是9.p

hdu 4056 Draw a Mess(数据结构-并查集)

Draw a Mess Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 864    Accepted Submission(s): 180 Problem Description It's graduated season, every students should leave something on the wall, so.