首页 > 代码库 > C# 使用Graphics绘制图片时发生闪烁的问题
C# 使用Graphics绘制图片时发生闪烁的问题
在做某功能时,需要实现用鼠标滚轮放大缩小图片,直接在MouseWheel中绘制图片时发生闪烁
百度后顺利解决
几个步骤
1.设置Form的DoubleBuffered属性为True
2.在MouseWheel中调用 this.Invalidate()方法(会触发OnPaint事件)
3.重写OnPaint,在OnPaint中绘制需要绘制的图像
代码如下:
public partial class Form1 : Form { int width, height; string path = "C:\\Users\\Public\\Pictures\\Sample Pictures\\Penguins.jpg"; Image img = null; public Form1() { InitializeComponent(); this.DoubleBuffered = true; img = Image.FromFile(path); width = img.Width; height = img.Height; this.MouseWheel += new MouseEventHandler(Form1_MouseWheel); } void Form1_MouseWheel(object sender, MouseEventArgs e) { width += (e.Delta / 5); height += (e.Delta / 5); this.Invalidate(); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle rect = new Rectangle(0, 0, width, height); e.Graphics.Clear(SystemColors.Control); e.Graphics.DrawImage(img, rect); } }
C# 使用Graphics绘制图片时发生闪烁的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。