AnsweredAssumed Answered

ArcObjects 10.3 Add Transparent Polygon to Map

Question asked by joshua.corcoran on Jul 20, 2015
Latest reply on Jul 22, 2015 by Hornbydd

Hi everyone. This is an issue I have been trying to tackle for a while and decided to reach out for help. I am creating an ESRI ArcGIS Desktop Add-In that allows the user to draw a polygon and then have it added to the map. I am able to capture the polygon and add it to the map, the issue is the transparency. Currently and by default it is 100% opacity and solid. I want to make it around 50% opacity so the user can see the data behind it.


Here is the code I have so far:

public static void AddPolygonToMap(IActiveView ActiveViewInstance, IGeometry NewGeo)
            //Local Variable Declaration
            var fillShapeElement = default(IFillShapeElement);
            var element = default(IElement);
            var graphicsContainer = default(IGraphicsContainer);
            var simpleFilleSymbol = default(ISimpleFillSymbol);
            var newRgbColor = default(IRgbColor);
            var lineSymbol = default(ILineSymbol);

            //Use the IElement interface to set the Envelope Element's geo
            element = new PolygonElement();
            element.Geometry = NewGeo;

            //QI for the IFillShapeElement interface so that the symbol property can be set
            fillShapeElement = element as IFillShapeElement;

            //Create a new fill symbol
            simpleFilleSymbol = new SimpleFillSymbol();

            //Create a new color marker symbol of the color black;
            newRgbColor = new RgbColor();
            newRgbColor.Red = 0;
            newRgbColor.Green = 0;
            newRgbColor.Blue = 0;
            //Create a new line symbol so that we can set the width outline
            lineSymbol = new SimpleLineSymbol();
            lineSymbol.Color = newRgbColor;
            lineSymbol.Width = 2;

            //Setup the Simple Fill Symbol
            simpleFilleSymbol.Color = newRgbColor;
            simpleFilleSymbol.Style = esriSimpleFillStyle.esriSFSHollow;
            simpleFilleSymbol.Outline = lineSymbol;
            fillShapeElement.Symbol = simpleFilleSymbol;

            //QI for the graphics container from the active view allows access to basic graphics layer
            graphicsContainer = ActiveViewInstance as IGraphicsContainer;

            //Add the new element at Z order 0
            graphicsContainer.AddElement((IElement)fillShapeElement, 0);

            //Show the new graphic


I know that this is possible somehow and I am sure it's just a line or two missing but any help would be much appreciated.