我想写一个GUI座位应用程序,允许用户绘制和注解座位区域的简单“Map”。最终的结果可能看起来有点像Visio,但专门用于操作我的“座位”数据模型,而不是生成文件。在Java-land中,有图形编辑框架(GEF)--在.NET空间中有类似的东西吗?我应该只使用System.Drawing.Drawing2D原语并自己处理吗?
inb24sb21#
这是Nevron的产品。这是有报酬的,但自己做这一切将需要大量的时间和精力。Open Diagram和EasyDiagram.net在Codeplex上提供。请务必下载并查看他们的代码。
envsm3lx2#
有Netron Library用于绘图。它是开源的,使用GDI+。
0yg35tkg3#
查看NShape。它是一个用C#编写的开源图表框架,非常强大。它的控件是WinForms控件,但您也可以将其用于WPF。
tsm1rwdh4#
您可以考虑使用Visual Studio SDK中的DSL工具包。它允许您创建图形化DSL设计器,方法是首先创建一个域模型,然后创建允许用户创建或编辑该模型示例的图形化符号。您可以创建一个看起来像座位区的图形符号。这将允许您的用户不仅“图表”,而且还可以生成一个包含图表所示内容的填充域模型的文件。
arknldoa5#
查看我们的MetaDraw组件。MetaDraw旨在使类似的应用程序变得简单。MetaDraw将支持一个背景图像和一个注解层,您可以将用户置于各种编辑模式中-线条,曲线,文本,形状等。每个绘制的元素都是不同的-就像在Visio中一样,因此您可以允许用户选择对象并移动它们或调整它们的大小。每个对象都可以有多个隐藏标签(如座位号或数据库记录指针)。您可以识别用户选择了哪些对象(例如,当用户单击seat 22时采取一些操作)。您可以通过代码动态修改属性-例如搜索seat 22并更改其填充颜色。当然,您也可以滚动,缩放,打印,保存到各种格式等等。
5条答案
按热度按时间inb24sb21#
这是Nevron的产品。这是有报酬的,但自己做这一切将需要大量的时间和精力。
Open Diagram和EasyDiagram.net在Codeplex上提供。请务必下载并查看他们的代码。
envsm3lx2#
有Netron Library用于绘图。它是开源的,使用GDI+。
0yg35tkg3#
查看NShape。它是一个用C#编写的开源图表框架,非常强大。它的控件是WinForms控件,但您也可以将其用于WPF。
tsm1rwdh4#
您可以考虑使用Visual Studio SDK中的DSL工具包。它允许您创建图形化DSL设计器,方法是首先创建一个域模型,然后创建允许用户创建或编辑该模型示例的图形化符号。
您可以创建一个看起来像座位区的图形符号。这将允许您的用户不仅“图表”,而且还可以生成一个包含图表所示内容的填充域模型的文件。
arknldoa5#
查看我们的MetaDraw组件。MetaDraw旨在使类似的应用程序变得简单。MetaDraw将支持一个背景图像和一个注解层,您可以将用户置于各种编辑模式中-线条,曲线,文本,形状等。每个绘制的元素都是不同的-就像在Visio中一样,因此您可以允许用户选择对象并移动它们或调整它们的大小。每个对象都可以有多个隐藏标签(如座位号或数据库记录指针)。您可以识别用户选择了哪些对象(例如,当用户单击seat 22时采取一些操作)。您可以通过代码动态修改属性-例如搜索seat 22并更改其填充颜色。当然,您也可以滚动,缩放,打印,保存到各种格式等等。