24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1337  |  回复: 8
本帖产生 1 个 EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xiangling1

金虫 (正式写手)

[求助] AE+c#让某一图元居中,闪烁

下面的代码,为何不能实现闪烁,请高手指点哈?

            //初始化图形容器对象
           IGraphicsContainer pContainer = axMapControl1.Map as IGraphicsContainer;
            //删除要素
           pContainer.DeleteAllElements();

            //点样式
           ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();
            pSimpleMarkerSymbol.Color = GetRGBColor(255,0,0);//取色
           pSimpleMarkerSymbol.Size = 3;
            IMarkerElement pMarkerElement = new MarkerElementClass();
            pMarkerElement.Symbol = pSimpleMarkerSymbol;
            IElement pElement = pMarkerElement as IElement;
            pElement.Geometry = pFeature.Shape;
            int nIndex = 0;
            pContainer.AddElement(pMarkerElement as IElement, nIndex);
            //居中显示
           axMapControl1.CenterAt((IPoint)pFeature.Shape);
            Application.DoEvents();
            axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, pContainer, axMapControl1.ActiveView.Extent);
            axMapControl1.FlashShape(pFeature.Shape, 4, 300, pSimpleMarkerSymbol);

[ Last edited by xiangling1 on 2011-6-27 at 13:19 ]
回复此楼
黄沙百战穿金甲,不破楼兰终不还!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kuaixiTotti

金虫 (小有名气)

英超煮帅

【答案】应助回帖

xiangling1(金币+5): 多谢,我先试一下。我跟踪代码,颜色可以获取到的。我们再讨论,多谢 2011-07-01 13:30:34
//初始化图形容器对象
            IGraphicsContainer pContainer = axMapControl1.Map as IGraphicsContainer;
            //删除要素
            pContainer.DeleteAllElements();

            //点样式
            ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();
            pSimpleMarkerSymbol.Color = GetRGBColor(255, 0, 0);//取色
            pSimpleMarkerSymbol.Size = 10;
            IMarkerElement pMarkerElement = new MarkerElementClass();
            pMarkerElement.Symbol = pSimpleMarkerSymbol;
            IElement pElement = pMarkerElement as IElement;
            pElement.Geometry = pFeature.Shape;
            int nIndex = 0;
            pContainer.AddElement(pMarkerElement as IElement, nIndex);
            //居中显示
            //IEnvelope env = pFeature.Shape.Envelope;
            //IPoint pt = new PointClass();
            //pt.X = (env.XMin + env.XMax) / 2;
            //pt.Y = (env.YMin + env.YMax) / 2;

            //IPoint pt = pFeature.Shape as IPoint;
            //IEnvelope env = new EnvelopeClass();
            //env.PutCoords(pt.X - 1000,pt.Y - 1000,pt.X +1000,pt.Y +1000);

            axMapControl1.CenterAt((IPoint)pFeature.Shape);
            Application.DoEvents();           
            
            axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, pContainer, axMapControl1.ActiveView.Extent);
            
            axMapControl1.FlashShape(pFeature.Shape, 4, 300, pSimpleMarkerSymbol);      

我采用相同的代码,在我这边可以实现高亮显示,其中楼主有一个自定义的方法,GetColor(),可能是这个方法的问题,下面是我重写的这个方法:

public IColor GetRGBColor(int red, int green, int blue)
        {
            IRgbColor pColor = new RgbColorClass();
            pColor.Red = red;
            pColor.Green = green;
            pColor.Blue = blue;
            return pColor as IColor;
        }
如果程序中报出什么错误,请楼主提供出来,以便分析原因。
做自己认为正确的事情
5楼2011-07-01 11:03:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

蓝色天空2380

至尊木虫 (小有名气)

路过,学习~\(≧▽≦)/~啦啦啦
自己选择的路,跪着也要把它走完!
2楼2011-06-28 22:27:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiangling1

金虫 (正式写手)

引用回帖:
Originally posted by 蓝色天空2380 at 2011-06-28 22:27:09:
路过,学习~\(≧▽≦)/~啦啦啦

3楼2011-06-28 22:53:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ChaunceyH

金虫 (正式写手)

你的代码我也看不出来有什么问题。。。
好运。。。
我决了个定,多看文章少灌水
4楼2011-06-29 17:09:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见