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

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;
	    }
	}
}

  完成后运行程序可以得到以下界面:
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值