NShape(矢量图形编辑器) 入门(一)

  NShape是基于.Net平台下的一款开源的winforms图表设计框架,使用C#编写。NShape允许用户查看、注释,修改和创建流程图、接线图或项目图等图表。Nshape有一个双重许可证,允许它在开源项目中免费使用,在商业项目中则需要支付许可证费用。

软件获取

  1. CodePlex网站
  2. GitHub

安装

1.解压文件后,进入安装目录下 Source 文件夹,打开 NShape.sln 工程文件,编译工程文件。
2.新建一个文件夹,将编译文件后获得的dll文件存放于此。
3.启动Visual Studio,将 Dataweb.NShape.dllDataweb.NShape.WinFormsUI.dll 添加到工具箱,添加dll控件教程见:Visual Studio 添加dll控件

创建一个NShape桌面应用程序

1.新建一个Visual C# Window 窗体应用程序,命名为 BaseNShapeApplication
  ! NShape项目要求使用完整的 .Net Framework 版本,如果项目是使用 .Net Framework Client 版本,请切换成完整版。
2.添加如下引用:Dataweb.NShape.dllDataweb.NShape.WinFormsUI.dllDataweb.NShape.GeneralShapes
3.在winForm窗口内添加 MenuStrip 控件,于控件内添加文件打开子集。

4.继续往窗体内添加以下控件:DisplayProjectDiagramSetControllerCachedRepositoryXmlStore 控件,设置 Display 控件 Dock 属性为为 Fill,随后按照以下顺序对控件进行关联绑定操作:

.XmlStore
.CachedRepository
.Project
.DiagramSetController
xmlStore1
cachedRepository1
project1
diagramSetController1
display1

5.双击窗体标题栏进入 Form1_Load 方法,添加代码:

private void Form1_Load(object sender, EventArgs e)
{project1.LibrarySearchPaths.Add(Application.StartupPath);project1.AutoLoadLibraries = true;/* NShape保存格式文件".nspj"会存储GeneralShapes控件标识,版本信息.* 因此如果不进行注册的话,会无法打开不同版本时期创建的文件。* 其中NShape Demo文件大部分均为1.0.0.0 - 2.0.0.0时期文件,因此建议提前注册。*/project1.AddLibrary(typeof(Ellipse).Assembly, false);project1.AutoGenerateTemplates = true;//在新建project1对象时,必须为其添加名称,默认project对象不会生成名称,但却需要名称。project1.Name = "New Templet";project1.Create();display1.CreateDiagram("Diagram 1");
}

  完成后运行程序会得到以下界面:

6.双击菜单栏下 打开 选项,进入 打开ToolStripMenuItem_Click 方法,添加代码:

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{OpenFileDialog openfileDialog = new OpenFileDialog();openfileDialog.Filter = "*.nspj|*.nspj";if (openfileDialog.ShowDialog() == DialogResult.OK){//在打开新文件前需要先关闭原先打开的对象if(project1.IsOpen){project1.Close();}FileInfo fileInfo = new FileInfo(openfileDialog.FileName);xmlStore1.DirectoryName = fileInfo.DirectoryName;xmlStore1.FileExtension = fileInfo.Extension.TrimStart('.');project1.Name = fileInfo.Name.Replace(fileInfo.Extension, "");project1.Open();//NShape程序允许存在多个Diagrams对象,但只能显示其中一个。本Demo默认显示第一个对象。var diagrams = project1.Repository.GetDiagrams();foreach (var item in diagrams){display1.Diagram = item;break;}}
}

  完成后运行程序可以得到以下界面:

NShape(开源矢量图形编辑器) 入门(一)相关推荐

  1. linux矢量图像编辑,Inkscape 1.0发布,开源矢量图形编辑器重要版本

    Inkscape 1.0终于来了! 这个已经存在了将近二十年的开源矢量图形编辑器终于达到了1.0状态. 除版本号外,Inkscape 1.0是一个重要版本. Inkscape 1.0标志着从GTK2移 ...

  2. linux矢量图像编辑,Inkscape - 开源矢量图形编辑器

    Inkscape是一款开源矢量图形编辑工具,并不同于Xara X.Corel Draw和Adobe Illustrator等竞争对手,它使用的是可缩放矢量图形(SVG)图形格式.SVG是一个广泛部署. ...

  3. macos安装vscode_VS Code 代码编辑器入门指南:核心组件与概念

    作者:思考问题的熊 写在前面 如果当电脑只能装一个软件还需要尽量不影响日常学习工作时,不知道你的选择会是什么.我把这个看似「荒诞」的问题理解为「All-in-One」的升级版拷问. 这个问题陪伴了我很 ...

  4. sql优化ppt_一款跨平台免费的开源 SQL 编辑器和数据库管理器!

    大家好,我是 JackTian. 今天给大家推荐一款适用于Windows,Linux和Mac的跨平台免费的开源SQL编辑器和数据库管理应用程序 -- beekeeper-studio. Beekeep ...

  5. 开源图像编辑器 GIMP 开发者透露 2019 年计划

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   开源图像编辑器项目 GIMP 的开发者通过官方博客回顾了 2018 年,并谈论了 2019 年的发布计划.开发者称,在去年发布 v2.10 ...

  6. 【完结】给新手的12大深度学习开源框架快速入门项目

    文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...

  7. 【github干货】主流深度学习开源框架从入门到熟练

    文章首发于微信公众号<有三AI> [github干货]主流深度学习开源框架从入门到熟练 今天送上有三AI学院第一个github项目 01项目背景 目前深度学习框架呈百家争鸣之态势,光是为人 ...

  8. 【开源】高颜值 功能强大的开源Markdown编辑器

    开源最前线(ID:OpenSourceTop) 猿妹编译 地址:https://github.com/notable/notable Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简 ...

  9. php百度编辑器精简版,开源web编辑器|百度编辑器ueditor下载1.4.3.4php版 下载_久友软件下载...

    百度编辑器ueditor是由百度官方推出的开源web编辑器.百度编辑器ueditor能支持用户在网页上进行内容编辑,软件体积十分的轻巧,完全免费开源,加载速度极快,兼容所有主流的浏览器使用,如:Moz ...

  10. 在mac上用文本编辑器写python_Mac开源文本编辑器CotEditor

    coteditor for mac版是一款适用于macOS系统的轻量级文本编辑器,可以用于编辑纯文本文件,如网页(HTML,CSS),程序源代码(Python,Ruby,Perl等),结构化文本(Ma ...

最新文章

  1. 码农新手白日梦:学最少的数学,编最靓的程
  2. leetcode 贪心_LeetCode进阶1029-贪心
  3. 【小白学习PyTorch教程】十五、BERT:通过PyTorch来创建一个文本分类的Bert模型
  4. 狗屎一样的代码如何重构?
  5. mysql以下运算符的优先级顺序正确的是_MySQL 运算符
  6. 计算机体系结构_计算机体系结构知识笔记
  7. JSP编程技术2-动态标签
  8. nodejs--数据库与身份验证:初识数据库、安装并配置 MySQL、MySQL 的基本使用、SQL语法、在项目中操作 MySQL
  9. java条形码识别_java openCV 识别条形码
  10. java计算机毕业设计网课系统源码+系统+数据库+lw文档+mybatis+运行部署
  11. mac安装homebrew + git + nodejs
  12. 数据挖掘的十大经典算法
  13. WMP专辑封面显示不正常的问题(更新问题真实原因及完美解决方法)
  14. 内存泄漏和溢出的区别
  15. Java_发展史简介
  16. window.print()打印时设置背景色
  17. 图文教程:excel2007打印区域设置
  18. memoryCache和diskCache流程详解
  19. 天翼物联加入ZETA联盟共建物联生态圈 推动LPWAN2.0泛在物联
  20. 机器学习入门书单推荐

热门文章

  1. 模拟扑克牌花色:♠ ♥ ♦ ♣ * 牌号:A 2 3 4 5 6 7 8 9 10 J Q K * 大王、小王 * * 1.生成一副牌 * 2.然后发牌
  2. 双网卡 跃点_有关win7 pppoe拨号网络的跃点数及win7 多路internet访问带宽叠加 - Microsoft Community...
  3. 跨越信息沟通的障碍,构建企业高效应用平台
  4. 【pycharm】复制粘贴快捷键失效
  5. python的easyocr图像文字识别
  6. 使用DAX(Power BI)的移动平均线
  7. 英文论文评审意见_小弟第一篇英文论文审稿意见求助 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  8. rand()函数的用法
  9. SourceInsight4.0黑色背景主题
  10. 韩信点兵python算法_韩信点兵算法