阅读:3027回复:9
c#制作Symbol选择对话框
<P>现在要实现双击toccontrol中的某一层的symbol调出symbol选择对话框.</P>
<P>vb中有示例实现了类似于arcmap中的symbol选择对话框,用到了ISymbolSelector接口.</P> <P>那么在c#中怎么实现呢?有相应的接口吗?</P> |
|
1楼#
发布于:2006-07-30 16:41
<P>自己写个窗体了,在改变你所选择的图层的Symbol!不需要多少代码的,很快!</P>
|
|
|
2楼#
发布于:2006-12-07 14:31
如果用ISymbolSelector接口 横简单,但是在纯Engine 开发是没有这个接口
|
|
3楼#
发布于:2006-12-08 21:31
<P>例子里有了,就看懂,然后是要学会VB转换到C#</P>
|
|
4楼#
发布于:2006-12-09 11:17
我们在AE中读取style(呵,不是serverstyle,也不是在AO中读的噢)符号库文件,在此基础上开发了类arcgis符号库管理器,如有兴趣,可以QQ联系:171567188,我发给你DEMO
|
|
|
5楼#
发布于:2006-12-09 14:23
<P>你看的是AO的例子,在ENGINE中是没有这个接口的,不过这个例子转换成C#的代码如下:</P>
<P>private void axTOCCtl_OnDoubleClick(object sender, ESRI.ArcGIS.TOCControl.ITOCControlEvents_OnDoubleClickEvent e)<BR> {<BR> IBasicMap map = null;<BR> object pOther = null;<BR> object index = null;</P> <P> if (e.button==1)<BR> {<BR> m_TOCControl.HitTest(e.x, e.y, ref m_TocItem, ref map, ref m_TocLayer, ref pOther, ref index);<BR> System.Drawing.Point pos=new System.Drawing.Point(e.x,e.y);<BR> if (this.m_TocItem == esriTOCControlItem.esriTOCControlItemLegendClass)<BR> {<BR> ESRI.ArcGIS.Carto.ILegendClass pLC=new LegendClassClass();<BR> ESRI.ArcGIS.Carto.ILegendGroup pLG=new LegendGroupClass();<BR> if(pOther is ILegendGroup)<BR> {<BR> pLG=(ILegendGroup)pOther;<BR> }</P> <P> pLC=pLG.get_Class((int)index);<BR> ISymbol pSym;<BR> pSym=pLC.Symbol;<BR> ESRI.ArcGIS.DisplayUI.ISymbolSelector pSS=new ESRI.ArcGIS.DisplayUI.SymbolSelectorClass();<BR> bool bOK=false;<BR> pSS.AddSymbol(pSym);<BR> bOK=pSS.SelectSymbol(0);<BR> if (bOK)<BR> {<BR> pLC.Symbol=pSS.GetSymbolAt(0);<BR> }<BR> this.axMapCtl.ActiveView.Refresh();<BR> this.axTOCCtl.Refresh();<BR> }<BR> }</P> <P> }</P> |
|
6楼#
发布于:2006-12-11 09:45
<P>大家都在写这样的代码,重复劳动啊。。。。 唉,如果能跟AicGIS似的全部都实现为COM,不就可以大家“互通有无”了啊,也不需要关你是C#,VC,VB。。。</P>
<P>COM是好东西啊。</P> |
|
|
7楼#
发布于:2006-12-19 11:28
是呀,我强烈建议资源共享<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
|
|
8楼#
发布于:2006-12-22 11:27
我们已经做出来了,基于.NET开发的.可QQ:171567188联系
|
|
|
9楼#
发布于:2007-01-10 09:54
学习...
|
|