WinForm内移动、放大缩小控件出现闪屏问题的解决方法
来源:互联网 发布:制版软件 编辑:程序博客网 时间:2024/06/05 16:26
WinForm 对图像处理本身就不太友好,放大或缩小会刷新界面控件,当然有闪烁。
1、不使用图片作为背景,而用纯色替代,如果是这样的话,也就不会出现闪屏了,但如果UI上有特别要求的,这条路就行不通了。
2、重写Panel,然后在Panel中添加背景图片,而不是把背景图片添加到Form中,重写的Panel代码如下:
View Code 1 /// <summary>
2 /// 一个Panel类,当设置背景图片时,控制其不会闪屏
3 /// </summary>
4 public class BackgroundPanel : Panel
5 {
6 protected override void OnPaintBackground(PaintEventArgs e)
7 {
8 return;
9 }
10
11 protected override void OnPaint(PaintEventArgs e)
12 {
13
14 this.DoubleBuffered = true;
15 if (this.BackgroundImage != null)
16 {
17 e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
18 e.Graphics.DrawImage(this.BackgroundImage, new System.Drawing.Rectangle(0, 0, this.Width, this.Height),
19 0, 0, this.BackgroundImage.Width, this.BackgroundImage.Height,
20 System.Drawing.GraphicsUnit.Pixel);
21 }
22 base.OnPaint(e);
23 }
24 }
3、使用Form的双缓存可以减少闪屏,但效果不明显,可以在Form的Load事件里添加以下代码
View Code1 this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
2 this.SetStyle(ControlStyles.DoubleBuffer, true);
3 this.SetStyle(ControlStyles.UserPaint, true);
4 this.SetStyle(ControlStyles.ResizeRedraw, true);
阅读全文
0 0
- WinForm内移动、放大缩小控件出现闪屏问题的解决方法
- 控件移动,放大,缩小,旋转
- android中使用Baidu Map遇到的问题之:移动Mapview上的放大缩小控件
- 【实训】可以移动放大缩小的图片控件
- Android图片放大缩小自由移动控件
- winform 图片放大缩小
- winform chart 控件之滚动条的放大与缩小功能
- winform chart 控件之滚动条的放大与缩小功能
- IOS代码添加控件,控件移动,放大,缩小,旋转
- IOS代码添加控件,控件移动,放大,缩小,旋转
- IOS代码添加控件,控件移动,放大,缩小,旋转
- IOS代码添加控件,控件移动,放大,缩小,旋转
- IOS代码添加控件,控件移动,放大,缩小,旋转
- cocos2d游戏地图的放大、缩小、移动
- android 图片的 放大 缩小 移动
- 简单的MFC在Picture控件上放大缩小图像,显示时:缩小功能正常,放大功能有问题
- [iOS开发项目-3] 按钮控件的移动,放大缩小,左右旋转操作
- 两个重叠控件的放大缩小实现
- 欢迎使用CSDN-markdown编辑器
- Eclipse中从svn中检出maven项目
- 前端开发常用库
- 硬链接为什么不能跨文件系统/不能链接目录?
- 1.23Android 学习+进度之二十三-同步和分析
- WinForm内移动、放大缩小控件出现闪屏问题的解决方法
- 设计模式-工厂方法模式-factorymethod-python
- dom监听属性的变化
- js动态生成select,并初始化后台原有数据
- MATLAB和C语言混合编程问题
- UE4 自动创建破碎物件的actor(C++版本)
- Filter过滤器例外URL设置
- CF679A Bear and Prime 100(prime)
- Android map api密匙获取 输入命令后显示keytool 不是内部或外部命令