解决Winform背景图片闪烁的问题
解决Winform背景图片闪烁的问题
Winform窗体,里面放置了一个Panel,Dock属性为Fill,BackgroundImage使用一个本地图片文件, BackgroundImageLayout使用了Stretch。嵌入图片的Panel作为Winform应用程序的背景,这个界面现在有两个问题: 1、在窗体第一次被打开时,背景图片会出现明显的闪烁 2、在拉动窗体的边界以调整窗体大小时,背景图片非出现明显的闪烁 解决方案: 需要新建一个PanelEnhanced类继承Panel类,代码如下: C# Code: /// <summary> /// 加强版 Panel /// </summary> class PanelEnhanced : Panel { /// <summary> /// OnPaintBackground 事件 /// </summary> /// <param name="e"></param> protected override void OnPaintBackground(PaintEventArgs e) { // 重载基类的背景擦除函数, // 解决窗口刷新,放大,图像闪烁 return; } /// <summary> /// OnPaint 事件 /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { // 使用双缓冲 this.DoubleBuffered = true; // 背景重绘移动到此 if (this.BackgroundImage != null) { e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; e.Graphics.DrawImage( this.BackgroundImage, new System.Drawing.Rectangle(0, 0, this.Width, this.Height), 0, 0, this.BackgroundImage.Width, this.BackgroundImage.Height, System.Drawing.GraphicsUnit.Pixel); } base.OnPaint(e); } } //来源:C/S框架网(www.csframework.com) QQ:1980854898
参考文档:
C# Winform 制作可任意拖动的不规则背景图片窗体 解决VSS预设是administrator登录的问题 解决组件被遮挡的问题(表格的滚动条不显示或隐藏) 使用WCF连接池有效解决访问IIS承载的WCF出现SendTimeOut连接超时或IIS死机的问题 解决代码生成器生成主从表界面没有带出中文标题的问题 C# PictureBox设置背景图片及加载图片源码 Win7,8,10解决无法通过IP连接XP共享打印机的问题(原创) C/S结构的Winform系统图片存储策略 Winform+DevExpress框架之独立图片存储解决方案|C/S框架网 Winform快速开发框架之存储图片资源解决方案|C/S框架网 解决重启电脑后网络打印机灰色无法打印的问题|C/S框架网 解决表格记录复选组件ColumnHeaderCheckBox排序出现勾选混乱问题 解决IconFont字体图标乱码问题 Winform软件快速开发平台 - 关于数据权限,表格列权限控制两种解决方案 新增功能:保存前本地缓存数据,资料暂存解决方案 - Winform开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |