All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
数据库中的命名规则_[SQL,Server教程]
用javascript轻松制作抽奖系统_JavaScript技术_编程技术
javascript,函数,检查图片大小是否大于预期大小_JavaScript技术_编程技术
C#教程:键盘消息的响应实例
asp.net控件CheckBoxList使用详解_[Asp.Net教程]
新手:什么是PHP?网站开发为什么选择PHP?_php资料_编程技术
用最有效的方式来扩大你网站的名声_JavaScript技术_编程技术
SQL,Server,连接基础知识_mssql学习_编程技术
利用C#实现分布式数据库查询_[Asp.Net教程]
Apache+MySql+PHP的快速安装_[PHP教程]
Reading number is top 10 pictures
Azusa Yamamoto1
色狗系列
西方气质的东方美女1
The money of more than 100 countries and regions12
女人化妆前后的对比
So beauty, will let you spray blood1
NeedWallpaper8
西班牙山村小景1
The goddess of the single reason2
The money of more than 100 countries and regions2
Download software ranking
Tram sex maniac 2 (H) rar bag17
传奇私服架设教程-chm
电脑知识及技巧大合集
The king of fighters 97(Mobile phone games-apk)
天龙八部十二宫服务端
Red cliff
Unix video tutorial10
Boxer's Top ten classic battle5
Unix video tutorial7
Tram sex maniac 2 (H) rar bag13
aaa published in(发表于) 2013/12/15 8:42:29 Edit(编辑)
C#闪烁问题解决方法_.net资料_编程技术

C#闪烁问题解决方法_.net资料_编程技术

C#闪烁问题解决方法_.net资料_编程技术-你的首页-uuhomepage.com

  自从米格的仁兄向我推荐C#之后,偶就误入歧途的渐渐脱离了Java阵营。最近在写工具的时候,忽然发现了一个老生常谈的闪烁问题,要知道这样的问题在Java Swing里只要把DoubleBuffer设置为true基本上是不会发生的,但在C#上却怎么也搞不定,竟然连双缓冲都有问题,GDI+不会这么脆弱吧。


  偶再一次被微软的花头给戏弄了,无奈只好踏上了漫漫搜索之路,也不知道搜了多少帖子,找了多少资料,基本上都是无功而返,更可气的是网上有些资料还骗人,偶试了试基本上都不行的,该闪的照样闪的欢。有些方法像脏矩阵一样要Invalide部分更新区域,偶嫌他麻烦,幸好偶找到了一篇文章,讲闪烁原理的,虽然偶过去自认为了解闪烁原理,比如什么刷新周期,显存之类的,不过偶还是耐着性子看了一遍,收获颇丰,看来孔夫子的温故而知新颇有道理!


  于是偶按照原理自己改起了代码,没想到还真让我给解决了。C#控件之所以会闪烁,是因为Refresh会把整个控件给清成背景色,然后再把图像绘制上去,就算先把所有待画的图像绘制到缓冲上,然后再Render到控件上,因为清屏时的颜色,相当于中间插了一空白帧,当刷新过快时也是会有闪烁的。


  偶的做法是:


  1.每帧控件创建一个Graphics,记得一定是CreateGraphics而不是通过Paint函数的那个参数e获得。


  2.把待绘制的图像绘制到缓冲上,缓冲大小为控件大小。


  3.刷新的时候调用Invalidate(new Rectangle(0, 0, 1, 1));


  4.在Paint函数绘制缓冲,搞定!


  哈哈,相信大家看了都会了解,Invalidate(new Rectangle(0, 0, 1, 1));相当于调用Paint函数,但却不重绘控件,这样中间那个空白帧就没有了,闪烁当然就消失啦!


  原理很重要啊很重要!





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.