WinForm GDI+自定义控件总结(一)】的更多相关文章

前言 由于项目的原因好久没写博客了,也正是项目的原因开始系统的学习WinForm,从而接触到自定义控件的开发.自定义控件的开发有一定的难度,对开发者要求比较高,需要了解Windows运行的机制,熟悉win32Api和GDI+.下面是我收集的一些资料,挺不错的. 资料 .NET组件编程http://www.cnblogs.com/mapserver/category/57177.html .NET组件编程(1) 基础.NET组件编程(2) PropertyAttribute和EventAttrib…
在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…
过程:创建WPF工程->创建Winform用户自定义控件工程->WPF中引用控件->添加到Xaml页面 1.首先在WPF工程的解决方案上右击选择添加新建项目: 选择Windows窗体空间库: 2.在WPF中引用添加好的控件(添加好控件的工程之后要生成一下) 同时还要添加另外2个系统引用: 3.现在我们到Xaml页面上开始添加内容 xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=Windows…
什么是GDI+ GDI (Graphics Device Interface), 是属于绘图方面的 API (Application Programming Interface). 因为应用程序不能直接控制硬件, 所以当我们要进行绘图的动作时, 必须透过 GDI 才能完成. GDI+ (Graphics Device Interface) 是一种绘图装置接口, 可将应用程序和绘图硬件分隔, 让我们能够编写与装置无关的应用程序.它可以让我们不需注意特定显示装置的详细数 据,便可在屏幕或打印机显示信…
UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面,一是设计精美的用户界面,再有就是符合大多数用户习惯和易于使用的操作流程. 本文主要收集整理一些介绍 .Net 框架的基本绘图技术文章.通过简要的介绍和示例程序来探讨绘图技术的优势.劣势以及其它相关注意事项.(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ) [转]GDI+基础(1) [转…
winform桌面软件开发,在工业控制领域的使用还是很广泛的,打算好好学习一下GDI+绘图.以前都是用别人的轮子,自己也打算封装一些工业控制领域常用的控件. 今天要将的是,利用缓动函数动态绘制电池. 首先在网上搜索了一些常用的缓动函数,并用Animation类做了二次封装.(引用自:http://dsqiu.iteye.com ,感谢) public enum AnimationType { Linear, EaseIn, EaseOut, EaseInOut, BounceIn, Bounce…
这样的一个控件 肯定得通过自定义控件来实现了 public class ProcessLabel : Control { public ProcessLabel() { //InitializeComponent(); this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPain…
最近需要做一个圆形的按钮,去CodeProject找了一下,发现有现成的可用,但不能完全满足我的需求.因此自己试着利用WinForm中的自定义组件功能,制作一个圆形按钮.圆形按钮小制作即将开始之前,先来看看最终效果(Demo程序下载链接:http://download.csdn.net/detail/keypig_zz/9440806) 下面分两步制作这个按钮. A. 目标 想了一下,即将制作的圆形按钮需要满足几个要求: i. 按钮呈现圆形或椭圆形,具体形状参数可调: ii. 按钮用不同的填充色…
原文链接:http://blog.csdn.net/bychentufeiyang/article/details/7081402   与原文基本一致,只是例子变成VS2012环境,语言采用博主常用的VB.NET 一 .概述Windows 窗体控件是可再次使用的组件,它们封装了用户界面功能,并且可以用于客户端 Windows 应用程序.“Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构.可以组合现有控件.扩展现有控件或创作自己的自定义控件.Windows 窗体控件是从…
之前无意间在博客园看到一篇用深度学习玩马里奥的文章,于是就想做这个小东西来测试人工智能算法(准备用PYTHON的库,对神经网络的梦已经做了好多年了,但是太难了,一直懒得动它),本来是想用WPF做UI,又感觉有点麻烦(不熟),就改最熟悉的GDI+直接画了...好吧,其实就是一个月没写博客了,只好硬憋一篇出来凑个数了... 效果如下: 至于代码,没什么好说的,本来也想用类的方式封装的更细一点,后来越写越复杂,于是就放弃了(总想往里面塞一堆的设计模式,又用不好).那个棋子不是用图片贴的,用了一个路径画…
此文章可以解决2至少2个问题: 1.开启AllowsTransparenc造成的GDI+组件不显示问题 2.WPF 组件无法覆盖嵌入WPF窗口的任何第三方GDI+组件上层 方案1:自制双层 原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动.缩放.最小化.最大化 的联动 事件.缺点:电脑性能太差会出现重影. 方案2:微软解决空域的方案 原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动.缩放.最小化.最大化 的联动 事件.缺点:电脑性能太差会出现重影. <interop:Airs…
虽然VS为我们提供了很多控件可以使用,但有时候这些控件仍然不能满足我们的要求,比如我们要对部分控件进行一些个性化的定制,例如美化控件,这时候就需要自己绘制控件,或是在原有控件的基础上进行修改 自定义控件分为三种 1.组合控件(CompositeControls):在原有控件的基础上根据需要进行组合 2.扩展控件(ExtendedControls):继承自原有控件,添加一些新的属性和方法,绘制一些新元素 3.自定义控件(CustomControls):控件的绘制全部由用户定义 1.组合控件 新建项…
命名空间: 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对象理解成一个画图环境,这个画图环境包括:要画在什么东西上,用什么画…
一 .概述Windows 窗体控件是可再次使用的组件,它们封装了用户界面功能,并且可以用于客户端 Windows 应用程序.“Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构.可以组合现有控件.扩展现有控件或创作自己的自定义控件.Windows 窗体控件是从 System.Windows.Forms.Control 直接或间接派生的类.以下列表描述了开发 Windows 窗体控件的常见方案: ·  组合现有控件来创作一个复合控件. 复合控件封装有一个可以作为控件重复使…
大家好,今天有时间给大家带来Winform自绘控件的第二部分,也是比较有意思的一个控件:旋转太极图. 大家可以停下思考一下,如果让你来绘制旋转的太极图,大家有什么样的思路呢?我今天跟大家展示一下,我平时绘制所用的思路,还请各位不吝赐教. 其实连续的动画效果,微观上去看,就是将这连续的时间切成一小段一小段,太极图只要在每一小段时间移动一定角度.那么在宏观上看将会是连续的动画.所以整体的思路就有了: 在每一小段的时间将,改变绘制起始角度,触发控件重绘,就可以形成连续的动画效果.因为是围绕控件中心进行…
转载自:http://www.dotblogs.com.tw/rainmaker/archive/2012/02/22/69811.aspx 解决方案: 在调用用户控件的窗体里面添加一下代码: protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED return cp…
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…
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Globalization; using System.Windows.Forms; namespace KUN.CONTROL.LIB.UC { public partial class KFillTime : UserControl { #region 属性定义 [Bro…
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;…
技术看点 WinForm自定义控件的使用 自定义控件gif动画的播放 需求及效果 又来一波 C# GDI自定义控件show .这个控件已经使用几年了,最近找出来重构一下.原来是没有边框的,那么导致导航的功能不是很突出.本来想加个效果:在执行单击时显示Loading动画,在执行完单击事件后恢复原样.这就是网页里见到的局部刷新,Ajax常用的场景.需求来自几年前一个智能储物柜项目,人机界面有个美工设计好的效果图,为了省事和通用,需要一个透明的按钮来实现导航的任务.就是控件只是设计时可见,运行时不可见…
技术看点 WinForm自定义控件的使用 WinForm单窗体应用如何模块化 需求及效果 又来一波 C# GDI自定义控件show .这个控件已经使用几年了,最近找出来重构一下.原来是没有边框的,那么导致导航的功能不是很突出.本来想加个效果:在执行单击时显示Loading动画,在执行完单击事件后恢复原样.这就是网页里见到的局部刷新,Ajax常用的场景.无奈要下班了,还没弄出来.需求来自几年前一个智能储物柜项目,人机界面有个美工设计好的效果图,为了省事和通用,需要一个透明的按钮来实现导航的任务.就…
本文转载:http://blog.csdn.net/sabty/article/details/5325260 以前也曾遇到这样的问题,不过影响不大也没有去详细了解.今天又重新遇到此问题,实在太不便.经查证这是 Visual Studio 2005 的 Bug.微软对此的 Bug 描述:http://support.microsoft.com/?scid=kb;zh-cn;839202&x=10&y=15 //DesignMode存在BUG,在构造函数里面DesignMode永远都是fal…
从事软件行业那么多年,一直很少写博.很多技术,长时间不用都慢慢淡忘. 把自己学到的用笔记下来,可以巩固和发现不足,也可以把自己对技术的一些 理解,分享出来供大家批评指正. 废话不多说,进入正题.工作流设计器网上有很多第三方开源的项目,也有成熟 的产品,但是有些不太符合自己的业务,于是自己动手做一个设计器.使用winform +GDI 绘制. 大概功能: 1.拖动绘制节点 2.移动节点 3.直线.折线链接节点 4.节点移动要能自动移动连接线 5.高亮显示选中的节点,和线 6.能删除选中的线和节点…
前言: 不想看前言的直接去看正文吧!另外文末有彩蛋. DataGridView可以支持多种数据源格式,比如DataTable和List. DataTable没啥特殊的,本身就是一张二维的表,可以和DataGridView行列对应. 但是List不太一样,举个栗子,有一个UserList用户列表,格式是这样的: class UserModel{ Id Name, Gender, Age, JobModel } class JobModel{ JobId, JobName, UserId } 对于上…
一, 不一定需要自定义控件在使用WPF以前,动辄使用自定义控件几乎成了惯性思维,比如需要一个带图片的按钮,但在WPF中此类任务却不需要如此大费周章,因为控件可以嵌套使用以及可以为控件外观打造一套新的样式就可以了.是否需要我们来自定义控件,这需要你考虑目前已有控件的真正逻辑功能而不要局限于外观,如果目前的控件都不能直觉地表达你的想法,那么你可以自己来打造一个控件,否则,也许我们仅仅改变一下目前控件的模板等就可以完成任务.很多人在自定义控件上经常犯的错误是:重复撰写已有的逻辑 二,UserContr…
原文:在WPF中自定义控件(1)    在WPF中自定义控件(1):概述                                                   周银辉一, 不一定需要自定义控件在使用WPF以前,动辄使用自定义控件几乎成了惯性思维,比如需要一个带图片的按钮,但在WPF中此类任务却不需要如此大费周章,因为控件可以嵌套使用以及可以为控件外观打造一套新的样式就可以了.是否需要我们来自定义控件,这需要你考虑目前已有控件的真正逻辑功能而不要局限于外观,如果目前的控件都不能直觉地…