ArcGIS改变选择集选中时的样式与颜色

来源:互联网 发布:中文域名在线转码工具 编辑:程序博客网 时间:2024/05/07 00:35

转自:http://m.blog.csdn.net/sx341125/article/details/50286137

1.全局设置颜色

我们知道在ArcMap中我们可以设置选择集的样式,就是设置全局选择集的选中时的颜色,在任务栏选择—》选择选项—》默认情况下显示所选要素所使用的颜色;

对应在 IMxApplication::SelectionEnvironment这个属性,但是IMxApplication只在ArcGIS Desktop桌面开发时可以使用,无论是Map与MapControl并没有SelectionEnvironment这个属性,而ISelectionEnvironment这个接口是可以直接New出来的,是CoClass,所以我们可以ISelectionEnvironment mSelectionEnvironment=new SelectionEnvironmentClass();这个接口的属性之中可以使用DefaultColor对当前的环境进行颜色设置:

<span style="white-space:pre"></span>mSelectionEnvironment.DefaultColor = pColor;//这个pColor可以使用IColorPalette进行设置                mApplication.SelectionEnvironment = this.mSelectionEnvironment;                tagRECT rect=new tagRECT ();                rect.bottom = 0;                rect.left = 0;                rect.right = 5;                rect.top = 5;                IEnvelope env = new EnvelopeClass();                this.mMapControl.ActiveView.ScreenDisplay.DisplayTransformation.TransformRect(env, rect, 4);                this.mMapControl.Map.SelectByShape(env, mSelectionEnvironment, false);

由于这里不知道当前的选择集范围是什么,所以随机建立一个很小的envelope,然后调用IMap的SelectByShape方法选择一次,即使没有任何效果,但是已经将这个全局的SelectionEnvironment设置到了全局颜色样式中去了!是不是很神奇!!!

2.指定图层颜色设置

有时候就是想将某一个图层的选中集样式与其他的图层不一样,所以有了图层的样式设置将IFeatureLayerQI成IFeatureSelection,这个接口中的属性与方法可以设置当前图层的样式,其中SelectionSymbol可以使用axSymbologyControl进行选择设置,关于这个控件的使用,在Arcgis二次开发的Sample里面有较好的示例代码。