Parameters
- color
- ArcGIS.Core.CIM.CIMColor
- width
- The width of stroke to construct.
- lineStyle
- SimpleLineStyle
/// <summary> /// Create a polygon symbol with a diagonal cross hatch fill. <br/> ///  /// </summary> /// <returns></returns> public static Task<CIMPolygonSymbol> CreateDiagonalCrossPolygonAsync() { return QueuedTask.Run<CIMPolygonSymbol>(() => { var trans = 50.0;//semi transparent CIMStroke outline = SymbolFactory.Instance.ConstructStroke(CIMColor.CreateRGBColor(0, 0, 0, trans), 2.0, SimpleLineStyle.Solid); //Stroke for the fill var solid = SymbolFactory.Instance.ConstructStroke(CIMColor.CreateRGBColor(255, 0, 0, trans), 1.0, SimpleLineStyle.Solid); //Mimic cross hatch CIMFill[] diagonalCross = { new CIMHatchFill() { Enable = true, Rotation = 45.0, Separation = 5.0, LineSymbol = new CIMLineSymbol() { SymbolLayers = new CIMSymbolLayer[1] { solid } } }, new CIMHatchFill() { Enable = true, Rotation = -45.0, Separation = 5.0, LineSymbol = new CIMLineSymbol() { SymbolLayers = new CIMSymbolLayer[1] { solid } } } }; List<CIMSymbolLayer> symbolLayers = new List<CIMSymbolLayer> { outline }; foreach (var fill in diagonalCross) symbolLayers.Add(fill); return new CIMPolygonSymbol() { SymbolLayers = symbolLayers.ToArray() }; }); }
/// <summary> /// Create a polygon symbol using the ConstructHatchFill method . <br/> ///  /// </summary> /// <returns></returns> private static Task<CIMPolygonSymbol> CreateHatchFillPolygonAsync() { return QueuedTask.Run<CIMPolygonSymbol>(() => { CIMStroke lineStroke = SymbolFactory.Instance.ConstructStroke(CIMColor.CreateRGBColor(51, 51, 51, 60), 4, SimpleLineStyle.Solid); //gradient var hatchFill = SymbolFactory.Instance.ConstructHatchFill(lineStroke, 45, 6, 0); List<CIMSymbolLayer> symbolLayers = new List<CIMSymbolLayer> { hatchFill }; return new CIMPolygonSymbol() { SymbolLayers = symbolLayers.ToArray() }; }); }
/// <summary> /// Create a polygon symbol with a gradient color fill. <br/> ///  /// </summary> /// <remarks> /// 1. Create a solid colored stroke with 50% transparency /// 1. Create a fill using gradient colors red through green /// 1. Apply both the stroke and fill as a symbol layer array to the new PolygonSymbol /// </remarks> /// <returns></returns> public static Task<CIMPolygonSymbol> CreateGradientFillAsync() { return QueuedTask.Run<CIMPolygonSymbol>(() => { var trans = 50.0;//semi transparent CIMStroke outline = SymbolFactory.Instance.ConstructStroke(CIMColor.CreateRGBColor(0, 0, 0, trans), 2.0, SimpleLineStyle.Solid); //Mimic cross hatch CIMFill solidColorHatch = new CIMGradientFill() { ColorRamp = ColorFactory.Instance.ConstructColorRamp(ColorRampAlgorithm.LinearContinuous, ColorFactory.Instance.RedRGB, ColorFactory.Instance.GreenRGB) }; List<CIMSymbolLayer> symbolLayers = new List<CIMSymbolLayer> { outline, solidColorHatch }; return new CIMPolygonSymbol() { SymbolLayers = symbolLayers.ToArray() }; }); }
/// <summary> /// Create a polygon symbol using the ConstructGradientFill method. Constructs a gradient fill using the specified color ramp. <br/> ///  /// </summary> /// <returns></returns> public static Task<CIMPolygonSymbol> CreateGradientColorRampPolygonAsync() { return QueuedTask.Run<CIMPolygonSymbol>(() => { //outine CIMStroke outline = SymbolFactory.Instance.ConstructStroke(CIMColor.CreateRGBColor(49, 49, 49), 2.0, SimpleLineStyle.Solid); //gradient fill using a color ramp var gradientFill = SymbolFactory.Instance.ConstructGradientFill(GetColorRamp(), GradientFillMethod.Linear); List<CIMSymbolLayer> symbolLayers = new List<CIMSymbolLayer> { outline, gradientFill }; return new CIMPolygonSymbol() { SymbolLayers = symbolLayers.ToArray() }; }); }
Target Platforms: Windows 11, Windows 10