『7x24小时有问必答』

项目简介

一个基于 C# 与 Windows Forms 框架开发的简易矢量图绘制系统,提供一个轻量、易用且功能完整的桌面绘图工具。
应用启动时会展示加载动画,并内置独立的用户登录与注册机制。用户成功登录后,可新建空白画布或打开本地图片文件,在画布上使用多种绘图工具进行创作,并将作品保存至本地。
整个系统覆盖了从用户会话管理、文件操作到图形绘制的完整流程,适合学习参考、二次开发或作为小型绘图工具使用。

核心功能

1、会话管理

闪屏动画:程序启动时显示欢迎界面与加载进度条,提升初次使用的体验感。
用户系统:支持新用户注册与已有用户登录,用户凭证通过本地文件加密存储,无需依赖数据库。

2、文件操作

新建画布:创建一块默认为白色的空白画布,作为绘图起点。
打开文件:兼容多种图像格式,包括 BMP、WMF、ICO、CUR、JPG 等,方便用户在已有图像基础上编辑。
保存文件:可将当前画布内容导出为标准 BMP 图片格式,便于分享或存档。

3、绘图工具

基础图形:支持绘制直线、矩形、椭圆等常用几何图形。
高级图形:提供折线与不规则多边形的自由绘制能力,满足更复杂的图形需求。
画笔设置:允许用户自定义画笔颜色与线宽,灵活调整绘制效果。

4、用户体验

实时时钟:主界面右下角持续显示系统当前时间,增强界面信息密度。
帮助文档:内置“帮助"菜单项,点击后自动跳转至在线说明页面,降低使用门槛。
状态管理:在用户未新建或未打开有效画布前,绘图工具栏自动禁用,引导规范操作流程,避免无效操作。
项目架构
主窗体:文件新建或打开,文件保存,图形绘制,画笔选择,帮助文档,实时时间,程序退出。
闪屏窗体:闪屏图片,欢迎提示,滚动进度条
登录窗体:登录,注册
1.png

项目结构

├── VectorDrawingSystem/         # 核心源代码目录,包含窗体、逻辑类与资源文件

├── screenshots/                     # 应用运行截图及操作演示 GIF

├── doc/                                 # 项目设计文档与使用说明

项目使用

1、直接运行(推荐)

前往项目仓库的 Releases 页面。
下载最新的压缩包。
解压后,直接运行其中的 .exe 或 .msi 文件即可启动应用。

2、从源码编译

确保已安装 Visual Studio 及 .NET Framework(建议版本 4.7.2 或更高)。
克隆或下载本项目源码。
使用 Visual Studio 打开根目录下的 .sln 解决方案文件。
点击菜单栏"生成" →"生成解决方案"。
构建成功后,按 F5 或点击"启动" 按钮运行程序。

项目代码

private  void  Form1_MouseUp(object  sender, MouseEventArgs e)

{

      isDrawing =  false;

      Graphics g =  this.CreateGraphics();

       switch  (drawTool)

      {

             case  drawTools.Line:

                  ig.DrawLine(new  Pen(forecolor, fontsize), startPoint,  new  Point(e.X, e.Y));

                   break;

             case  drawTools.Rectangle:

                  ig.DrawRectangle(new  Pen(forecolor, fontsize), startPoint.X, startPoint.Y, e.X - startPoint.X, e.Y - startPoint.Y);

                   break;

             case  drawTools.Ellipse:

                  ig.DrawEllipse(new  Pen(forecolor, fontsize), startPoint.X, startPoint.Y, e.X - startPoint.X, e.Y - startPoint.Y);

                   break;

             case  drawTools.BLine:

                   if  (points.Count >  1)

                  {

                        Point point1 = points[points.Count -  2];

                        Point point2 = points[points.Count -  1];

                        ig.DrawLine(new  Pen(forecolor, fontsize), point1, point2);

                         //for (int i = 0; i < points.Count - 1; i++)

                         //{

                         //      ig.DrawLine(new Pen(forecolor, fontsize), points, points[i + 1]);

                         //}

                  }

                   break;

             case  drawTools.Polygon:

                   if  (points.Count >  1)

                  {

                         for  (int  i =  0; i < points.Count -  1; i++)

                        {

                              ig.DrawLine(new  Pen(forecolor, fontsize), points, points[i +  1]);

                        }

                        ig.DrawLine(new  Pen(forecolor, fontsize), points[points.Count -  1], points[0]);//画首尾连接线                 

                  }                                               

                   break;

             case  drawTools.Rubber:

                  ig.DrawLine(new  Pen(backcolor,  30), startPoint,  new  Point(e.X, e.Y));

                   break;

      }

}

项目效果

系统加载

2.png

系统登录

3.png

文件操作

4.png

绘图工具

5.png

项目源码

项目代码结构清晰,模块划分合理,适合希望了解 WinForms 桌面应用开发流程的开发参考。
为了防止丢失,可以在评论区留言关键字矢量绘制,即可获取完整源码地址。
6.png

关键词

C#、Windows Forms、矢量绘图GDI+、桌面应用、用户登录、文件操作、绘图工具、.NET Framework、开源项目
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号[DotNet技术匠]  社区,与其他热爱技术的同行一起交流心得,共同成长!
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

方便大家交流、资源共享和共同成长
纯技术交流群,需要加入的小伙伴请扫码,并备注加群

推荐阅读

觉得有收获?不妨分享让更多人受益
关注「DotNet技术匠」,共同提升技术实力

收藏
点赞
分享
在看

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码