ArcEngine实现扯旗标注(转载)

转自:http://blog.csdn.net/longronggis/article/details/8100661

ArcEngine实现类似CAD中的扯旗标注,其实就是给textElemen的样式赋一个背景。ILineCallout可以实现扯旗效果。

            //创建背景

            IRgbColor pRgbClr = new RgbColorClass();
            pRgbClr.Red = 0;
            pRgbClr.Blue = 0;
            pRgbClr.Green = 0;

            ISimpleLineSymbol ldrLine = new SimpleLineSymbol();
            ldrLine.Color = pRgbClr;
            ldrLine.Width = 1;

            ISimpleLineSymbol accentBar = new SimpleLineSymbol();
            accentBar.Color = pRgbClr;

            ILineCallout lineCallout = new LineCallout();
            lineCallout.Style = esriLineCalloutStyle.esriLCSUnderline;//底下的下划线
            lineCallout.Border = null;
            lineCallout.AccentBar = accentBar; //左边的竖直线
            lineCallout.LeaderLine = ldrLine;   //牵引线

            IPoint pPoint = new ESRI.ArcGIS.Geometry.PointClass();
            pPoint.X = x;
            pPoint.Y = y;
            lineCallout.AnchorPoint = pPoint;

 

            //创建文字标注

            IFormattedTextSymbol pTextSymbol = new TextSymbolClass();
            ILineCallout lineCallout = CreateLineCallout(x, y);
            pTextSymbol.Color = color;
            pTextSymbol.Size = 10;
            ITextBackground pTextBackground = lineCallout as ITextBackground;
            pTextSymbol.Background = pTextBackground; //赋背景
            pTextSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHALeft;
            ITextElement textElement = pTElement as ITextElement;
            textElement.Symbol = pTextSymbol;

 

           下面是效果:

            

 

posted @ 2016-07-02 19:07  焦涛  阅读(1234)  评论(0)    收藏  举报