使用c#实现一个简单绘图软件(绘制矩形、多边形,画笔、橡皮擦功能)的完整教程

c#是微软提供的用于开发windows软件的开发语言,可以使用其快速的实现windows桌面软件的开发。这里基于C#开发了一款简单的绘图软件,可以用于绘制矩形、多边形的绘制(基于这些可以实现自己的数据标注软件),还实现了画笔、橡皮擦功能。开发C#软件通常使用Visual Studio软件开发,这里使用的是vs2019。

1、基本概念

使用c#实现绘图软件需要了解c#桌面软件所具备的控件(如按钮、文本框、进度条、下拉列表、图片显示控件等)和各种相关事件(如鼠标按下、鼠标拖动、控件点击、控件重绘等事件)。

1.1 相关桌面控件介绍

开发绘图软件需要用到的桌面控件有:按钮(Button)、文本框(Label)、下拉列表(ComboBox)、进度条(trackBar)、图片显示控件(PictureBox)等。博主使用以上控件实现了下图的操作界面,这里需要补充的是博主使用button来显示颜色(设置button的文本为空,然后修改了它的颜色),如果点击该按钮则会弹出颜色选择框。

创建文件选择框

ComboBox选项切换事件

ComboBox选项切换事件也就是SelectedIndexChanged事件,设置这个事件需要先选择空间,然后点击图中标 为2的雷电符 (设置控件属性),找到SelectedIndexChanged然后在其空白处(图中绿色框处)双击,即可进入设置SelectedIndexChanged事件(获取ComboBox所选中的文本,然后修改相关变量);。

TrackBar的拖动事件

trackBar的拖动事件也就是Scroll事件,依照下图所点击的顺序,找到Scroll双击即可设置拖动事件(获取trackBar表示的数值,然后修改相关变量);

2.2 变量定义

这里定义了一些绘图颜色、线宽相关的变量

这里定义了一些绘图过程需要的变量

这里定义了一些绘图判别相关的变量

2.3 事件绑定

完整的变量定义和事件绑定代码如下所示,其核心在于区分开pictureBox的鼠标按下(MouseDown)、鼠标移动(MouseMove)、鼠标松开(MouseUp)、控件重绘(Paint)事件在不同的绘图动作类型(action_type )的实现代码。所以,代码中if用的比较多。其中控件重绘(Paint)事件在绘制矩形、多边形时用于绘制对应的参考线,在画笔和橡皮擦功能时用于绘制鼠标对应的点。

using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Drawing2D;using System.Linq;using System.Windows.Forms;namespace 绘画识别{    public partial class Form1 : Form    {private int line_width = 10;//划线的宽度设置为10private Color fill_color = Color.Black;//绘图区域的背景颜色private SolidBrush fill_brush = new SolidBrush(Color.Black);private Pen line_color = new Pen(new SolidBrush(Color.Black));private SolidBrush eraser_brush = new SolidBrush(Color.Transparent);//橡皮擦颜色private Graphics draw_paint, merge_paint;//中间画板private Image tmp_bitmap;//用来保存绘图痕迹ListPoint> polyPoints = null;//存储绘制多边形的点集Rectangle rectA;//存储要用于绘图的矩形Image bg_image;//背景图片Point start;  //起始点Point end;   //结束点bool need_draw_tmp;   //在MouseMove事件中判断是否绘制矩形框string action_type = "";//绘图动作类型bool is_first_down = true;//判断是否第一次按下鼠标bool press_move_flag = false;public Form1(){    InitializeComponent()

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月16日
下一篇 2022年9月16日

相关推荐