这是一个C#写的公开源代码的UML Design项目。 非常完善,强烈建议参照。 Control Description UML Design Tool . It can tell how to write a Rational Rose by yourself It have powerful edit ability It's very good example to learn GDI+, UI Design Design Pattern and so on http://www.windowsforms.net/ControlGallery/ControlDetail.aspx?Control=693&tabindex=5
如果是简单的几个图型显示,考虑用不同的自定义控件来自己画出来
{
Point m_point;
string m_sName;
void Draw(e)
{
控件自己画
}
}
用例控件 : 图形控件,
四方型控件:图形控件
连线控件 : 图形控件
单箭头控件:连线控件
双箭头控件:连线控件我的绘图类
{
图形控件[] 控件s;
}
做一套自己的绘图控件,每个控件在屏幕上自己绘画出自己的信息
然后,将这些类定义为可以序列话,到时候就可以保存为XML文件
http://cqbd.gnway.net/down/应用程序/SmartDraw.Professional.Plus.v6.50.rar基本上就要在“白板”上画“符号对象”,当鼠标移动或者点击的时候能够“拾取”符号对象,可以在符号对象上直接敲键盘录入文字,可以与键盘缓冲区之间拷贝、粘贴等操作,更多功能就如普通的WinForm程序没有什么两样。
www.AnyRepor.net 打不开呀。
还有,楼主如果觉得速度慢,请启用图形的二级缓存。实际原理就是把图形画到内存中的Image,然后再把这个Image画到绘图表面上设计器原理:在控件GoldPrinterGraphicsControl的OnPaint中循环每一个GoldPrinterElementCollection集合中的GoldPrinterElement并调用它的Draw(e.Graphacis)
为了交互便于拖动设计
在控件上有鼠标移动事件,这样有热点的图形可以加边框,如果鼠标是按下并移动的,图形就可移动拖拽,所有这些,实际上就是OnPaint中循环每一个GoldPrinterElementCollection集合中的GoldPrinterElement,如果是当前图形,只需重绘这个图形区,并调用它的Draw(e.Graphacis)速度就快了。原理就是这样,我相信楼主会搞出来。
效果可以看一看 www.AnyReport.Net
2. 符号边框自动产生链接点。并且在鼠标靠近(注意是靠近而不是接触)的时候可以拾取链接。
3. 连接的分段折线可以自由拖动/改变轨迹。
4. 符号被拖动的时候,那些连线必须跟着调整,我觉得这真的算是很智慧。
5. 可以嵌入Office。例如可以在Word里边使用“嵌入OLE对象”的方式潜入图形。在没有SD的机器则会表现为图片。
6. 分页、打印预览,导出其它格式等数据功能。
首先建立图形类,比如矩形类,圆类,线条类等
在通过绘图源类调用即可
内部信息整理出模型,结构可以用组合模式如(定义画图接口,再定义画板和图形,当然画板可以用不用透明方式)当前前两部分完成后,采用MVC的模式来完成各部分之间的协调,根据复杂程度可能会用到适配器模式。
上面有个类似的例子的
只是想赚点钱,大家别骂我,没有办法。
线段两端点处位置也要记录下来,鼠标点中一个端点,并拖动时可以根据它拖动位移来判断这个端点的新位置。把原来的刷掉,按新位置重画。
我看他们做的也挺复杂的。所有的控件都继承一个统一的基类。具体的一些设计还不是很清楚。
非常完善,强烈建议参照。 Control Description
UML Design Tool . It can tell how to write a Rational Rose by yourself It have powerful edit ability It's very good example to learn GDI+, UI Design Design Pattern and so on http://www.windowsforms.net/ControlGallery/ControlDetail.aspx?Control=693&tabindex=5