hqchart 1.1.14718 → 1.1.14731

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26651,6 +26651,7 @@ function ChartKLine()
26651
26651
  this.IsThinAKBar=true; //美国线 柱子是否是线段 (false=柱子)
26652
26652
  this.OneLimitBarType=0; //一字板颜色类型 4个价格全部都在同一个价位上 0=使用平盘颜色 1=跟昨收比较
26653
26653
  this.UnchangeBarType=0; //0=使用unchange color 1=和昨收比较
26654
+ this.EnableColorBar=false; //K线柱子是否支持自定义颜色
26654
26655
 
26655
26656
  this.HighLowBarColor=g_JSChartResource.HighLowBarColor;
26656
26657
  this.HighLowTextConfig=
@@ -27583,7 +27584,7 @@ function ChartKLine()
27583
27584
 
27584
27585
  this.DrawKBar_Custom(data, dataWidth, barColor, drawType, kLineOption, x, y, left, right, yLow, yHigh, yOpen, yClose, border, isHScreen);
27585
27586
  }
27586
- else if (this.DrawType==9 && data.ColorData)
27587
+ else if ((this.DrawType==9 || this.EnableColorBar) && data.ColorData)
27587
27588
  {
27588
27589
  this.DrawColorKBar(data, data.ColorData, dataWidth, x, y, left, right, yLow, yHigh, yOpen, yClose, isHScreen);
27589
27590
  }
@@ -55899,7 +55900,7 @@ function ChartCorssCursor()
55899
55900
  Enable:false, Rect:null,
55900
55901
  BGColor:g_JSChartResource.CorssCursor.RightButton.BGColor ,
55901
55902
  PenColor:g_JSChartResource.CorssCursor.RightButton.PenColor,
55902
- Icon:g_JSChartResource.CorssCursor.RightButton.Icon
55903
+ Icon:CloneData(g_JSChartResource.CorssCursor.RightButton.Icon)
55903
55904
  };
55904
55905
 
55905
55906
  //底部按钮
@@ -55908,9 +55909,11 @@ function ChartCorssCursor()
55908
55909
  Enable:false, Rect:null,
55909
55910
  }
55910
55911
 
55911
- this.RightMargin=CloneData(g_JSChartResource.CorssCursor.RightMargin);
55912
- this.BottomConfig=CloneData(g_JSChartResource.CorssCursor.BottomText); //底部输出配置
55913
- this.LeftConfig=CloneData(g_JSChartResource.CorssCursor.LeftText);
55912
+ this.BottomConfig=CloneData(g_JSChartResource.CorssCursor.BottomText); //底部输出配置
55913
+ this.LeftConfig=CloneData(g_JSChartResource.CorssCursor.LeftText); //左侧输出配置
55914
+ this.RightConfig=CloneData(g_JSChartResource.CorssCursor.RightText); //右侧输出配置
55915
+ this.RightOverlayConfig=CloneData(g_JSChartResource.CorssCursor.RightOverlayText); //右侧叠加指标输出配置
55916
+
55914
55917
 
55915
55918
  //内部使用
55916
55919
  this.Close=null; //收盘价格
@@ -55928,6 +55931,10 @@ function ChartCorssCursor()
55928
55931
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
55929
55932
  this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
55930
55933
 
55934
+ this.RightButton.BGColor=g_JSChartResource.CorssCursor.RightButton.BGColor;
55935
+ this.RightButton.PenColor=g_JSChartResource.CorssCursor.RightButton.PenColor;
55936
+ this.RightButton.Icon=CloneData(g_JSChartResource.CorssCursor.RightButton.Icon);
55937
+ this.RightOverlayConfig=CloneData(g_JSChartResource.CorssCursor.RightOverlayText);
55931
55938
 
55932
55939
  this.CorssPointConfig.Center=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Center);
55933
55940
  this.CorssPointConfig.Border=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Border);
@@ -56333,7 +56340,7 @@ function ChartCorssCursor()
56333
56340
  {
56334
56341
  ShowType:0, //0=单行(默认) 1=多行
56335
56342
  Font:this.Font, Color:this.TextColor,
56336
- Text:[ { Text:text, Margin:this.RightMargin } ],
56343
+ Text:[ { Text:text, Margin:this.RightConfig.Margin, TextOffset:this.RightConfig.TextOffset } ],
56337
56344
  };
56338
56345
 
56339
56346
  var yTop=y-this.TextHeight/2;
@@ -56364,6 +56371,28 @@ function ChartCorssCursor()
56364
56371
 
56365
56372
  this.CalculateComplexTextSize(complexText, textSize);
56366
56373
 
56374
+ //计算右侧文本输出顶部位置
56375
+ function _Temp_CalculateRightTextBGTop(rtBG, complexText, defaultTextHeight)
56376
+ {
56377
+ if (complexText.ShowType==1)
56378
+ {
56379
+ var yValue=defaultTextHeight/2;
56380
+ if (IFrameSplitOperator.IsNonEmptyArray(textSize.Text) && textSize.Text[0])
56381
+ {
56382
+ var itemSize=textSize.Text[0];
56383
+ if (IFrameSplitOperator.IsNumber(itemSize.Height)) yValue=itemSize.Height/2;
56384
+ }
56385
+
56386
+ rtBG.Top=rtBG.YCenter-yValue;
56387
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56388
+ }
56389
+ else
56390
+ {
56391
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
56392
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56393
+ }
56394
+ }
56395
+
56367
56396
  if (this.Frame.ChartBorder.Right>=30 && this.ShowTextMode.Right==1)
56368
56397
  {
56369
56398
  var isOverlayIndex=false; //是否有叠加子坐标
@@ -56392,74 +56421,53 @@ function ChartCorssCursor()
56392
56421
  //叠加坐标
56393
56422
  if (isOverlayIndex && textSize.Width>overlayIndexInterval && overlayIndexInterval>0) //大于子坐标宽度
56394
56423
  {
56424
+ var rtBG={ Right:right+overlayIndexInterval, Width:textSize.Width, YCenter:y, Height:textSize.Height };
56425
+ rtBG.Left=rtBG.Right-rtBG.Width;
56426
+ _Temp_CalculateRightTextBGTop(rtBG,complexText,this.TextHeight);
56427
+
56428
+ if (rtBG.Right>chartRight)
56429
+ {
56430
+ rtBG.Right=chartRight;
56431
+ rtBG.Left=rtBG.Right-rtBG.Width;
56432
+ }
56433
+
56395
56434
  var drawRight=right+overlayIndexInterval;
56396
56435
  if (drawRight>chartRight) drawRight=chartRight;
56397
56436
 
56398
- var itemLeft=drawRight-2-textSize.Width;
56399
- this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);
56400
- this.DrawComplexTextV2(itemLeft, yTop, complexText, textSize);
56437
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56438
+ this.DrawComplexRightText(rtBG,complexText,textSize);
56401
56439
 
56402
- if (this.RightButton.Enable) this.DrawRightButton(yTop, itemLeft,this.TextHeight,this.TextHeight,buttonData);
56403
- }
56404
- else if (rightWidth<textSize.Width) //右边空白显示不下,
56405
- {
56406
- var itemLeft=chartRight-2-textSize.Width;
56407
- this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);
56408
- this.DrawComplexTextV2(itemLeft, yTop ,complexText, textSize);
56409
-
56410
- if (this.RightButton.Enable) this.DrawRightButton(yTop, chartRight-2-textSize.Width,this.TextHeight,this.TextHeight,buttonData);
56440
+ if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
56411
56441
  }
56412
56442
  else
56413
56443
  {
56414
- var itemLeft=right+2;
56415
- this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);
56416
- this.DrawComplexTextV2(itemLeft,yTop,complexText,textSize);
56417
-
56418
- if (this.RightButton.Enable) this.DrawRightButton(yTop, right+2,this.TextHeight,this.TextHeight,buttonData);
56419
- }
56420
-
56421
- /*
56422
- if (this.StringFormatY.RExtendText && this.StringFormatY.RExtendText.length>0)
56423
- {
56424
- var yOffset=0;
56425
- for(var i in this.StringFormatY.RExtendText)
56444
+ var rtBG={ Left:right+1, Width:textSize.Width, YCenter:y, Height:textSize.Height };
56445
+ rtBG.Right=rtBG.Left+rtBG.Width;
56446
+ _Temp_CalculateRightTextBGTop(rtBG,complexText,this.TextHeight);
56447
+
56448
+ if (rtBG.Right>chartRight)
56426
56449
  {
56427
- var item=this.StringFormatY.RExtendText[i];
56428
- var rText='--.--'
56429
- if (item.YText) rText=item.YText;
56430
- else if (IFrameSplitOperator.IsNumber(item.Y)) rText=item.Y.toFixed(0);
56431
- var rTextWidth=this.Canvas.measureText(rText).width+4; //前后各空2个像素
56432
-
56433
- if (rightWidth<rTextWidth)
56434
- {
56435
- this.DrawTextBGRect(chartRight-2-rTextWidth,y+yOffset+this.TextHeight/2,rTextWidth,this.TextHeight);
56436
- this.Canvas.textAlign="right";
56437
- this.Canvas.textBaseline="middle";
56438
- this.Canvas.fillStyle=item.TextColor;
56439
- this.Canvas.fillText(rText,chartRight-4,y+yOffset+this.TextHeight,rTextWidth);
56440
- }
56441
- else
56442
- {
56443
- this.DrawTextBGRect(right+2,y+yOffset+this.TextHeight/2,rTextWidth,this.TextHeight);
56444
- this.Canvas.textAlign="left";
56445
- this.Canvas.textBaseline="middle";
56446
- this.Canvas.fillStyle=item.TextColor;
56447
- this.Canvas.fillText(rText,right+4,y+yOffset+this.TextHeight,rTextWidth);
56448
- }
56449
-
56450
- yOffset+=this.TextHeight;
56450
+ rtBG.Right=chartRight;
56451
+ rtBG.Left=rtBG.Right-rtBG.Width;
56451
56452
  }
56453
+
56454
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56455
+ this.DrawComplexRightText(rtBG,complexText,textSize);
56456
+
56457
+ if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
56452
56458
  }
56453
- */
56454
56459
  }
56455
- else if (this.ShowTextMode.Right==2)
56460
+ else if (this.ShowTextMode.Right==2) //框架内侧显示
56456
56461
  {
56462
+ var rtBG={ Right:right, Width:textSize.Width, YCenter:y, Height:textSize.Height };
56463
+ rtBG.Left=rtBG.Right-rtBG.Width;
56464
+ _Temp_CalculateRightTextBGTop(rtBG,complexText,this.TextHeight);
56465
+
56457
56466
  this.Canvas.fillStyle=this.TextBGColor;
56458
- var showLeft=right-textSize.Width;
56459
- this.DrawTextBGRect(showLeft,yTop,textSize.Width,textSize.Height);
56460
- this.DrawComplexTextV2(showLeft,yTop,complexText,textSize);
56467
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56468
+ this.DrawComplexRightText(rtBG,complexText,textSize);
56461
56469
 
56462
- if (this.RightButton.Enable) this.DrawRightButton(yTop, showLeft,this.TextHeight,this.TextHeight,buttonData);
56470
+ if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
56463
56471
  }
56464
56472
  }
56465
56473
 
@@ -56542,8 +56550,19 @@ function ChartCorssCursor()
56542
56550
  //if (overlayLeft+30>chartRight) break;
56543
56551
  var yValue=item.Frame.GetYData(y);
56544
56552
  var text=IFrameSplitOperator.FormatValueString(yValue,2);
56545
- var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
56553
+ var textWidth=this.Canvas.measureText(text).width; //前后各空2个像素
56554
+
56555
+
56556
+ var margin=this.RightOverlayConfig.Margin;
56557
+ var textOffset=this.RightOverlayConfig.TextOffset;
56558
+
56559
+ var rtBG={ Left:overlayLeft+1, Width:textWidth+margin.Left+margin.Right, YCenter:y, Height:textHeight+margin.Top+margin.Bottom };
56560
+ rtBG.Right=rtBG.Left-rtBG.Width;
56561
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
56562
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56546
56563
 
56564
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56565
+
56547
56566
  /*
56548
56567
  for(var j=2;j>=0;--j)
56549
56568
  {
@@ -56553,19 +56572,17 @@ function ChartCorssCursor()
56553
56572
  }
56554
56573
  */
56555
56574
 
56556
- this.Canvas.fillStyle=this.TextBGColor;
56557
- this.Canvas.fillRect(overlayLeft+1,y-this.TextHeight/2,textWidth,this.TextHeight);
56558
56575
  this.Canvas.textAlign="left";
56559
- this.Canvas.textBaseline="middle";
56576
+ this.Canvas.textBaseline="bottom";
56560
56577
  this.Canvas.fillStyle=this.TextColor;
56561
- this.Canvas.fillText(text,overlayLeft+4,y,textWidth);
56578
+ this.Canvas.fillText(text,rtBG.Left+textOffset.X, rtBG.Bottom+textOffset.Y);
56562
56579
  }
56563
56580
  }
56564
56581
 
56565
56582
  this.Status=1;
56566
56583
  }
56567
56584
 
56568
- this.DrawComplexTextV2=function(left, yTop, complexText, size)
56585
+ this.DrawComplexRightText=function(rtBG, complexText, size)
56569
56586
  {
56570
56587
  this.Canvas.textAlign="left";
56571
56588
  this.Canvas.textBaseline="bottom";
@@ -56573,8 +56590,8 @@ function ChartCorssCursor()
56573
56590
  if (complexText.ShowType==1) showType=complexText.ShowType;
56574
56591
  if (showType==1) //多行
56575
56592
  {
56576
- var xLeft=left;
56577
- var yText=yTop; //顶
56593
+ var xLeft=rtBG.Left;
56594
+ var yTop=rtBG.Top; //顶
56578
56595
  for(var i=0; i<complexText.Text.length; ++i)
56579
56596
  {
56580
56597
  var item=complexText.Text[i];
@@ -56586,24 +56603,25 @@ function ChartCorssCursor()
56586
56603
  if (item.Color) this.Canvas.fillStyle=item.Color;
56587
56604
  else this.Canvas.fillStyle=complexText.Color;
56588
56605
 
56589
- var y=yText+itemSize.Height;
56606
+ var y=yTop+itemSize.Height;
56590
56607
  var x=xLeft;
56591
- if (item.Margin)
56608
+
56609
+ if (item.TextOffset)
56592
56610
  {
56593
- var margin=item.Margin;
56594
- if (IFrameSplitOperator.IsNumber(margin.Bottom)) y-=margin.Bottom;
56595
- if (IFrameSplitOperator.IsNumber(margin.Left)) x+=margin.Left;
56611
+ var textOffset=item.TextOffset;
56612
+ if (IFrameSplitOperator.IsNumber(textOffset.X)) x+=textOffset.X;
56613
+ if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
56596
56614
  }
56597
56615
 
56598
56616
  this.Canvas.fillText(item.Text,x,y,itemSize.Width);
56599
56617
 
56600
- yText+=itemSize.Height;
56618
+ yTop+=itemSize.Height;
56601
56619
  }
56602
56620
  }
56603
56621
  else //水平 单行
56604
56622
  {
56605
- var xText=left;
56606
- var yBottom=yTop+size.Height;
56623
+ var xText=rtBG.Left;
56624
+ var yBottom=rtBG.Bottom;
56607
56625
  for(var i=0; i<complexText.Text.length; ++i)
56608
56626
  {
56609
56627
  var item=complexText.Text[i];
@@ -56615,15 +56633,16 @@ function ChartCorssCursor()
56615
56633
  if (item.Color) this.Canvas.fillStyle=item.Color;
56616
56634
  else this.Canvas.fillStyle=complexText.Color;
56617
56635
 
56618
- var y=yBottom;
56619
56636
  var x=xText;
56620
- if (item.Margin)
56637
+ var y=yBottom;
56638
+
56639
+ if (item.TextOffset)
56621
56640
  {
56622
- var margin=item.Margin;
56623
- if (IFrameSplitOperator.IsNumber(margin.Bottom)) y-=margin.Bottom;
56624
- if (IFrameSplitOperator.IsNumber(margin.Left)) x+=margin.Left;
56641
+ var textOffset=item.TextOffset;
56642
+ if (IFrameSplitOperator.IsNumber(textOffset.X)) x+=textOffset.X;
56643
+ if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
56625
56644
  }
56626
-
56645
+
56627
56646
  this.Canvas.fillText(item.Text,x,y,itemSize.Width);
56628
56647
 
56629
56648
  xText+=itemSize.Width;
@@ -56646,7 +56665,7 @@ function ChartCorssCursor()
56646
56665
  if (item.Font) this.Canvas.font=item.Font;
56647
56666
  else this.Canvas.font=complexText.Font;
56648
56667
  var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
56649
- var itemHeight=this.Canvas.measureText("擎").width;
56668
+ var itemHeight=this.GetFontHeight();
56650
56669
  if (item.Margin)
56651
56670
  {
56652
56671
  var margin=item.Margin;
@@ -56667,7 +56686,7 @@ function ChartCorssCursor()
56667
56686
  }
56668
56687
  else //水平 单行
56669
56688
  {
56670
- var textWidth=0, textHeight=0;
56689
+ var textWidth=0, textHeight=this.GetFontHeight();
56671
56690
  for(var i=0; i<complexText.Text.length; ++i)
56672
56691
  {
56673
56692
  var item=complexText.Text[i];
@@ -56696,6 +56715,61 @@ function ChartCorssCursor()
56696
56715
  }
56697
56716
  }
56698
56717
 
56718
+
56719
+ this.DrawRightButtonV2=function(rtTextBG, complexText, textSize, data)
56720
+ {
56721
+ this.Canvas.fillStyle=this.RightButton.BGColor;
56722
+ var drawHeight=rtTextBG.Height;
56723
+ var drawWidth=rtTextBG.Height;
56724
+
56725
+ if (complexText.ShowType==1) //多行 取第1行高度
56726
+ {
56727
+ var itemSize=textSize.Text[0];
56728
+ drawHeight=itemSize.Height;
56729
+ drawWidth=itemSize.Height;
56730
+ }
56731
+
56732
+ var rtButton={Left:rtTextBG.Left-drawHeight, Top:rtTextBG.Top, Width:drawWidth, Height:drawHeight };
56733
+ rtButton.Right=rtButton.Left+rtButton.Width;
56734
+ rtButton.Bottom=rtButton.Top+rtButton.Height;
56735
+ this.RightButton.Rect=rtButton;
56736
+ this.RightButton.Data=data;
56737
+ this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));
56738
+
56739
+ var pixelRatio=GetDevicePixelRatio();
56740
+ var spaceWidth=3;
56741
+ var yCenter=(rtButton.Top+spaceWidth)+(rtButton.Height-spaceWidth*2)/2;
56742
+ var xCenter=(rtButton.Left+spaceWidth)+(rtButton.Width-spaceWidth*2)/2;
56743
+
56744
+ if (this.RightButton.Icon)
56745
+ {
56746
+ var icon=this.RightButton.Icon;
56747
+ this.Canvas.font=`${icon.Size*pixelRatio}px ${icon.Family}`;
56748
+ this.Canvas.textAlign="center";
56749
+ this.Canvas.textBaseline="middle";
56750
+ this.Canvas.fillStyle=icon.Color;
56751
+ this.Canvas.fillText("\ue6a3",xCenter,yCenter);
56752
+ }
56753
+ else
56754
+ {
56755
+ //画加号
56756
+ this.Canvas.strokeStyle=this.RightButton.PenColor;
56757
+ var x=rtButtom.Left+spaceWidth;
56758
+ var y=rtButtom.Top+spaceWidth;
56759
+ this.Canvas.save();
56760
+ this.Canvas.linewidth=1*pixelRatio;
56761
+ this.Canvas.beginPath();
56762
+ this.Canvas.moveTo(ToFixedPoint(x), ToFixedPoint(yCenter));
56763
+ this.Canvas.lineTo(ToFixedPoint(x+rtButton.Width-spaceWidth*2), ToFixedPoint(yCenter));
56764
+
56765
+ this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(y));
56766
+ this.Canvas.lineTo(ToFixedPoint(xCenter), ToFixedPoint(y+rtButton.Height-spaceWidth*2));
56767
+
56768
+ this.Canvas.stroke();
56769
+ this.Canvas.restore();
56770
+ }
56771
+ }
56772
+
56699
56773
  this.DrawRightButton=function(drawTop, drawRight, drawWidth, drawHeight, data)
56700
56774
  {
56701
56775
  this.Canvas.fillStyle=this.RightButton.BGColor;
@@ -74184,13 +74258,13 @@ function JSChartResource()
74184
74258
  {
74185
74259
  BGColor:'rgb(43,54,69)',
74186
74260
  PenColor:'rgb(255,255,255)',
74187
- Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:18 }
74261
+ Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:14 }
74188
74262
  },
74189
74263
 
74190
- RightMargin: { Left:2, Right:2, Top:5, Bottom:3 },
74191
-
74192
74264
  BottomText:{ Margin: { Left:4, Right:4, Top:0, Bottom:0 }, TextOffset:{X:4, Y:-1 } },
74193
74265
  LeftText:{ Margin: { Left:4, Right:4, Top:0, Bottom:0 }, TextOffset:{X:4, Y:-1 } },
74266
+ RightText:{ Margin: { Left:4, Right:4, Top:0, Bottom:0 }, TextOffset:{X:4, Y:-1 } },
74267
+ RightOverlayText:{ Margin: { Left:2, Right:2, Top:0, Bottom:0 }, TextOffset:{X:2, Y:-1 } }, //右侧叠加坐标
74194
74268
 
74195
74269
  CorssPoint:{ Center:{ Radius:5*GetDevicePixelRatio(), Color:"rgb(50,171,205)"}, Border:{ Color:'rgb(255,255,255)', Width:1*GetDevicePixelRatio() } }
74196
74270
  };
@@ -205,7 +205,7 @@ function GetBlackStyle()
205
205
  {
206
206
  BGColor:'rgb(43,54,69)',
207
207
  PenColor:'rgb(255,255,255)',
208
- Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:18 }
208
+ Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:12 }
209
209
  },
210
210
 
211
211
  CorssPoint:{ Center:{ Color:"rgb(50,171,205)" }, Border:{ Color:'rgba(0,0,0,0.8)', Width:1*GetDevicePixelRatio() } }