AxMapControl画线是用ILineElement做的,具体代码是这样子:
IGeometry polyline = axMapControl1.TrackLine();
ILineElement pLineElement = new LineElementClass();
IElement pElement = pLineElement as IElement;
pElement.Geometry = polyline;
pGraphicsContainer = pMap as IGraphicsContainer;
pGraphicsContainer.AddElement((IElement)pLineElement, 0);
pActiveView.Refresh();
参考资料:
http://wenku.baidu.com/link?url=ZVn_JEALwgkbrAFtnWKYF4AR8LzSybSwocqeiLYn-wHQsLetqu8jCJuSmuCY-4Fm_lgTHtCP2P3JmJnB70JnEfq2SVrxkufjPhK1FJuhwq7
如果你是用2005直接在控件上就有一个三角型可以直接点击停靠,否则还可以用控件的Anchor属性 你先把你需要停靠的控件大小设置好 然后把此属性的4个方向全都选择上 那样就能同样实现停靠了
在使用GEF(图形编辑框架)开发建模工具时,比如利用GEF实现程序流程图建模功能,有时对连线的路由方式会有比较高的要求,比如连线自动采用直角布局,要能够智能地避障并绕开模型,选择最佳路径进行布线。在建模类工具中,Microsoft Visio基本流程图中的连线的智能效果做的是同类工具中最好的,起码作者感觉如此。
这篇博客就介绍如何在GEF中为连线实现类似Visio中的智能效果。当然,本文以GEF为背景和实例进行介绍,文中的路由算法和思想同样可以应用于其他有类似需求的应用,在此不做赘述。