分享

Winform 屏幕放大镜

 Csharp小记 2023-10-30 发布于江苏

前言

    顾名思义,此篇文章就是实现针对屏幕上的局部位置进行放大显示的功能,一般情况下在屏幕取色器、商品图片详情展示等工具上使用的比较多。






开发环境:.NET Framework版本:4.8

开发工具:Visual Studio 2022










实现步骤

  1. 首先在窗体上放一个PictureBox控件和Timer控件

  2. 在PictureBox控件中绘制两条交错的线,用来针对坐标定位

 private void pictureBox1_Paint(object sender, PaintEventArgs e)        {            //绘制横线            e.Graphics.DrawLine(cursorPen, 0, pictureBox1.Height / 2, pictureBox1.Width, pictureBox1.Height / 2);            //绘制竖线            e.Graphics.DrawLine(cursorPen, pictureBox1.Width / 2, 0, pictureBox1.Width / 2, pictureBox1.Height);
}

  1. 在Timer的触发事件(触发频率为100毫秒)中,实现对屏幕图像的捕捉以及鼠标的定位,并在PictureBox中放大显示

 private void timer1_Tick(object sender, EventArgs e)        {            //放大倍数            int n = 4;            //定义图片为控件大小的1/N,由于SizeMode属性,所以显示会被放大N倍            Bitmap bitmap = new Bitmap(pictureBox1.Width / n, pictureBox1.Height / n);            using (Graphics g = Graphics.FromImage(bitmap))            {                //绘制从当前鼠标位置减去图片一半的屏幕大小到bitmap中                g.CopyFromScreen(new Point(Cursor.Position.X - bitmap.Width / 2, Cursor.Position.Y - bitmap.Height / 2), new Point(0, 0), bitmap.Size);            }            pictureBox1.Image = bitmap;        }

4. 代码实现比较简单,以下显示效果可以在程序外使用,只是为了方便展示所以坐标定位在了程序内。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约