Winform GDI+】的更多相关文章

什么是GDI+ GDI (Graphics Device Interface), 是属于绘图方面的 API (Application Programming Interface). 因为应用程序不能直接控制硬件, 所以当我们要进行绘图的动作时, 必须透过 GDI 才能完成. GDI+ (Graphics Device Interface) 是一种绘图装置接口, 可将应用程序和绘图硬件分隔, 让我们能够编写与装置无关的应用程序.它可以让我们不需注意特定显示装置的详细数 据,便可在屏幕或打印机显示信…
UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面,一是设计精美的用户界面,再有就是符合大多数用户习惯和易于使用的操作流程. 本文主要收集整理一些介绍 .Net 框架的基本绘图技术文章.通过简要的介绍和示例程序来探讨绘图技术的优势.劣势以及其它相关注意事项.(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ) [转]GDI+基础(1) [转…
前言 由于项目的原因好久没写博客了,也正是项目的原因开始系统的学习WinForm,从而接触到自定义控件的开发.自定义控件的开发有一定的难度,对开发者要求比较高,需要了解Windows运行的机制,熟悉win32Api和GDI+.下面是我收集的一些资料,挺不错的. 资料 .NET组件编程http://www.cnblogs.com/mapserver/category/57177.html .NET组件编程(1) 基础.NET组件编程(2) PropertyAttribute和EventAttrib…
winform桌面软件开发,在工业控制领域的使用还是很广泛的,打算好好学习一下GDI+绘图.以前都是用别人的轮子,自己也打算封装一些工业控制领域常用的控件. 今天要将的是,利用缓动函数动态绘制电池. 首先在网上搜索了一些常用的缓动函数,并用Animation类做了二次封装.(引用自:http://dsqiu.iteye.com ,感谢) public enum AnimationType { Linear, EaseIn, EaseOut, EaseInOut, BounceIn, Bounce…
在Visual Studio 2010中定义GDI+自定义控件——自定义控件介绍 http://www.cnblogs.com/zhangdong/archive/2010/05/20/1740177.html C#发现之旅第一讲 C#-XML开发C#发现之旅第二讲 C#-XSLT开发C#发现之旅第三讲 使用C#开发基于XSLT的代码生成器C#发现之旅第四讲 Windows图形开发入门C#发现之旅第五讲 图形开发基础篇C#发现之旅第六讲 C#图形开发中级篇C#发现之旅第七讲 C#图形开发高级篇C…
之前无意间在博客园看到一篇用深度学习玩马里奥的文章,于是就想做这个小东西来测试人工智能算法(准备用PYTHON的库,对神经网络的梦已经做了好多年了,但是太难了,一直懒得动它),本来是想用WPF做UI,又感觉有点麻烦(不熟),就改最熟悉的GDI+直接画了...好吧,其实就是一个月没写博客了,只好硬憋一篇出来凑个数了... 效果如下: 至于代码,没什么好说的,本来也想用类的方式封装的更细一点,后来越写越复杂,于是就放弃了(总想往里面塞一堆的设计模式,又用不好).那个棋子不是用图片贴的,用了一个路径画…
此文章可以解决2至少2个问题: 1.开启AllowsTransparenc造成的GDI+组件不显示问题 2.WPF 组件无法覆盖嵌入WPF窗口的任何第三方GDI+组件上层 方案1:自制双层 原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动.缩放.最小化.最大化 的联动 事件.缺点:电脑性能太差会出现重影. 方案2:微软解决空域的方案 原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动.缩放.最小化.最大化 的联动 事件.缺点:电脑性能太差会出现重影. <interop:Airs…
命名空间: using System.Drawing;//提供对GDI+基本图形功能的访问 using System.Drawing.Drawing2D;//提供高级的二维和矢量图像功能 using System.Drawing.Imaging;//提供高级GDI+图像处理功能 using System.Drawing.Printing;//提供打印相关服务 using System.Drawing.Text;//提供高级GDI+排版功能 using System.Drawing.Design;…
一 GDI编程原理 GDI(Graphics Device Interface,图形设备接口),主要负责Windows系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出. GDI的常用对象有Graphics.Pen.Font.Brush等. 在GDI的所有类中,Graphics类是核心,在绘制任何图形之前,一定要先创建或得到一个Graphics类的对象. 那么什么是Graphics呢?   可以将Graphics对象理解成一个画图环境,这个画图环境包括:要画在什么东西上,用什么画…
大家好,今天有时间给大家带来Winform自绘控件的第二部分,也是比较有意思的一个控件:旋转太极图. 大家可以停下思考一下,如果让你来绘制旋转的太极图,大家有什么样的思路呢?我今天跟大家展示一下,我平时绘制所用的思路,还请各位不吝赐教. 其实连续的动画效果,微观上去看,就是将这连续的时间切成一小段一小段,太极图只要在每一小段时间移动一定角度.那么在宏观上看将会是连续的动画.所以整体的思路就有了: 在每一小段的时间将,改变绘制起始角度,触发控件重绘,就可以形成连续的动画效果.因为是围绕控件中心进行…
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics g = Graphics.FromImage(bitmap); g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.PrimaryScreen.Bounds.Size); bitmap.Save(Application.…
private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.SmoothingMode = SmoothingMode.HighQuality;//去掉锯齿 g.CompositingQuality = CompositingQuality.HighQuality;//合成图像的质量 g.TextRenderingHint = TextRenderingHint.SingleBitP…
在程序窗口上使用鼠标画图 private Point pStart, pEnd; private bool isAllowDraw = false; private bool isOpenPen = false; private void Form1_MouseDown(object sender, MouseEventArgs e) { if (isOpenPen) { isAllowDraw = true; pStart = pEnd = e.Location; } } private vo…
1获取画布 (1)从PaintEventArgs类中获取画布 private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; } (2)从Image中获取画布 Bitmap bm = new Bitmap(this.Width, this.Height); Graphics g = Graphics.FromImage(bm); (3)使用CreateGraphics创建画布 Graphic…
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;…
从事软件行业那么多年,一直很少写博.很多技术,长时间不用都慢慢淡忘. 把自己学到的用笔记下来,可以巩固和发现不足,也可以把自己对技术的一些 理解,分享出来供大家批评指正. 废话不多说,进入正题.工作流设计器网上有很多第三方开源的项目,也有成熟 的产品,但是有些不太符合自己的业务,于是自己动手做一个设计器.使用winform +GDI 绘制. 大概功能: 1.拖动绘制节点 2.移动节点 3.直线.折线链接节点 4.节点移动要能自动移动连接线 5.高亮显示选中的节点,和线 6.能删除选中的线和节点…
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinForm GDI 编程基本原理 二 本节内容---碰撞检测 1.界面截图如下: 三 碰撞检测 目前碰撞检测主要发生在小球和挡板之间,以及小球和砖块之间,小球和砖块碰撞后,砖块需要被消去,主要代码如下: //碰撞检测 public void Hit() { //砖块与小球碰撞 ; i < m_bricks.…
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinForm GDI 编程基本原理 二 本节内容---画墙(砖块集合)以及双缓冲实现 1.界面截图如下: 三 砖块类设计 砖块类的定义代码和之前的挡板类差不多,代码如下: public class CommonBrick : GameObject { public Rectangle m_Rect { get…
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinForm GDI 编程基本原理 二 本节内容---小球移动 1.主窗体启动后,一个小球自动开始运动,碰到界面的四周,进行反弹,反弹后运动速度可能变快或者变慢,主界面截图如下: 三 小球类设计 小球类的定义代码和之前的挡板类差不多,代码如下: public class Ball { //坐标 public…
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinForm GDI 编程基本原理 二 本节内容---移动挡板 1.主窗体启动后,一个挡板出现在窗体底部,按键盘左键右键移动挡板,主界面截图如下: 三 挡板类补充设计 为了使挡板可以移动,我们需要为挡板类,新增2个成员变量, public int SpeedX { get; set; }//挡板的移动速度 p…
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinForm GDI 编程基本原理 二 本节内容---画挡板 1.主窗体启动后,一个挡板出现在窗体上,鼠标点击,挡板重新画在鼠标点击的地方,主界面截图如下: 三 挡板类设计 挡板类的定义代码如下: class Board { /// <summary> /// 挡板自身宽度 /// </summary…
2018年工作之余,想起来捡起GDI方面的技术,特意在RichCodeBox项目中做了两个示例程序,其中一个就是时钟效果,纯C#开发.这个CSharpQuartz是今天上午抽出一些时间,编写的,算是偷得浮生半日休闲吧.先来看看效果图吧: 这是直接在Winform的基础上进行绘制的.接下来,我对时钟进行了封装,封装成一个名为CSharpQuartz的类,效果如下: 这是把时钟封装后,实现的一种效果,CSharpQuartz内部开辟了一个线程,与系统时间,保持同步,每秒刷新一次.所采用的技术也就是G…
http://blog.csdn.net/blue_sky6/article/details/53811435?locationNum=6&fps=1 C# WinForm开发系列 - GDI+ Posted on 2009-07-19 15:23 peterzb 阅读(48850) 评论(17) 编辑 收藏 UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现…
写在前面: 本系列随笔将作为我对于winform控件开发的心得总结,方便对一些读者在GDI+.winform等技术方面进行一个入门级的讲解,抛砖引玉. 别问为什么不用WPF,为什么不用QT.问就是懒,不想学. 本项目所有代码均开源在https://github.com/muxiang/PowerControl 效果预览:(gif,3.4MB) 本系列第一篇内容将仅包含对于Winform基础窗口也就是System.Windows.Forms.Form的美化,后续将对一些常用控件如Button.Co…
最近接了个小项目10K.用了2个下班时间写完,共花费了6-7个小时完成.如有同类需求的可以与本人联系,QQ:120772981 功能目标: 需要写一个仿PPT画泳道图的组件.之前写过工作流的组件,其实这个跟工作流组件基本一样,所以写这个也得心应手.PPT的效果图如下, 在C#winform里面想要及支持手动拖拽又要只支持自定义的一些功能, 很会想到拖拽控件,控件直接放图片不就的了吗?这样也可以, 但后续控件元素越来越大的时候,可能会出现控件闪屏,严重的可能性能都跟不上,再有如果用户需要放大和缩小…
有时候在窗体中执行不断的GDI+操作的时候会出现闪速的状况,除了修改窗体的参数,更应该解决刷新本身的问题,双缓冲可能就是这样来的. 方法1: 用GDI绘制在位图上,然后再重新生成位图 Bitmap bt = , ); Graphics g = Graphics.FromImage(bt); g.DrawEllipse(Pens.Red, , , , ), ); g.Dispose(); gb.DrawImage(bt,,); gb.Dispose();…
主要功能:点击验证码可更换,输入验证码进行登陆 需要导入命名空间System.Drawing; 产生五位的随机字符串: 1 Random random = new Random(); //产生5个随机字符串 str = null; ; i < ; i++) { , ); str = str + (char)j; } 画字符串 //创建图片 Bitmap bmp = ,); //创建GDI对象 Graphics g = Graphics.FromImage(bmp); //循环画字符串 ; i <…
在处理图片时,读取本地图像文件,进行另存时发生GDI+中发生一般性错误 . 具体情况如下: 用OpenFileDialog打开图像文件,文件名为filename StreamReader sr = new StreamReader(filename); Stream sm = sr.BaseStream; imgZheng = Image.FromStream(sm); sm.Close(); sr.Close(); //将读取到的Image重新写入流,转化为byte[]以便进行进一步的处理 M…
skin皮肤和DLL程序及文件:下载 链接:http://www.cnblogs.com/DebugLZQ/archive/2013/04/15/3021659.html…
private void button1_Click(object sender, EventArgs e) { Bitmap bmp = new Bitmap(this.picturebox.Width, this.picturebox.Height); //在内存中创建一个bmp图,bmp的大小和窗口中picturebox的大小相同    Graphics g = Graphics.FromImage(bmp); //通过内存中的bmp图像创建一个在内存中的画布g,那么在画布上的任何操作就都…