/// <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() };
  });
}