【ArcGISPro二次开发】(81):文本符号_CIMTextSymbol
- 其他
- 2025-08-04 01:27:02

CIMTextSymbol是用于绘制文本图形注释的文本符号。
0、属性 Angel文本符号的放置角度BlockProgression多行文本的堆叠方向Callout引线DrawSoftHyphen连字符FlipAngle文本翻转(镜像)到位的角度FontEffects上下标FontEncoding获取文字的EncodingFontFamilyName字体名称FontStyleName字形样式,例如粗体、斜体。FontType字体样式,如宋体。HaloSize描边大小HaloSymbol描边符号Height文本高度HorizontalAlignment文本与几何体水平对齐的对齐类型VerticalAlignment文本与几何体垂直对齐的对齐类型IndentAfter后缩进IndentBefore前缩进IndentFirstLine首行缩进LetterSpacing字间距LetterWidth字宽度LineGap行间距LineGapType行间距类型OffsetXX轴偏移OffsetYY轴偏移ShadowColor阴影颜色ShadowOffsetX阴影X轴偏移ShadowOffsetY阴影Y轴偏移SmallCaps字母大小写Strikethrough删除线Symbol文字符号TextDirection文字方向Underline下划线WordSpacing单词间距
1、创建CIMTextSymbol // 创建一个CIMTextSymbol CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlueRGB, 8, "Corbel", "Regular"); 2、创建带描边的CIMTextSymbol // 创建描边 CIMPolygonSymbol haloPoly = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.RedRGB, SimpleFillStyle.Solid); // 创建文本标注 CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(haloPoly, 10, "Arial", "Bold"); 3、创建带引线的CIMTextSymbol // 创建一个标注符号CIMTextSymbol CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 10, "Verdana", "Regular"); // 创建一个引线CIMSimpleLineCallout CIMSimpleLineCallout lineCalloutSymbol = new CIMSimpleLineCallout(); // 创建一个线符号CIMLineSymbol CIMLineSymbol lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot); // 将线符号应用给引线 lineCalloutSymbol.LineSymbol = lineSymbol; // 设置标注文字的偏移量 textSymbol.OffsetX = 10; textSymbol.OffsetY = 10; // 应用引线给标注符号 textSymbol.Callout = lineCalloutSymbol; 4、创建气泡符号标注(圆角矩形) // 创建一个标注符号CIMTextSymbol CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 11, "Corbel", "Regular"); // 创建一个气泡符号CIMBalloonCallout CIMBalloonCallout balloonCallout = new CIMBalloonCallout(); // 设置气泡类型(圆角矩形) balloonCallout.BalloonStyle = BalloonCalloutStyle.RoundedRectangle; // 创建一个面符号CIMPolygonSymbol CIMPolygonSymbol polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.BlackRGB, SimpleFillStyle.Solid); // 应用气泡符号的底为面符号 balloonCallout.BackgroundSymbol = polySymbol; // 设置放置文字的边距 balloonCallout.Margin = new CIMTextMargin { Left = 5, Right = 5, Bottom = 5, Top = 5 }; // 应用文本符号 textSymbol.Callout = balloonCallout; 5、创建点索引符号标注 // 创建一个标注符号CIMTextSymbol CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 6, "Tahoma", "Bold"); // 创建一个点索引符号CIMPointSymbolCallout CIMPointSymbolCallout shieldCalloutSymbol = new CIMPointSymbolCallout(); // 从样式中获取符号(这里简写,获取方法需细化) var symbolStyleItem = GetPointSymbol("ArcGIS 2D", "Shield 1"); // 应用符号 shieldCalloutSymbol.PointSymbol = symbolStyleItem.Symbol as CIMPointSymbol; // 设置大小 shieldCalloutSymbol.PointSymbol.SetSize(18.0); //set symbol size // 应用文本符号 textSymbol.Callout = shieldCalloutSymbol; 6、创建带引线带边框的CIMTextSymbol // 创建一个标注符号CIMTextSymbol CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 8, "Tahoma", "Bold"); // 创建一个索引底面框CIMBackgroundCallout CIMBackgroundCallout backgroundCalloutSymbol = new CIMBackgroundCallout(); // 引线 // 创建一个线符号 CIMLineSymbol lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot); // 创建一个面符号 CIMColor aquaBackground = ColorFactory.Instance.CreateRGBColor(190, 255, 232, 100); CIMPolygonSymbol polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(aquaBackground, SimpleFillStyle.Solid); // 应用引线 backgroundCalloutSymbol.LeaderLineSymbol = lineSymbol; // 设置引线偏移量 textSymbol.OffsetX = 10; textSymbol.OffsetY = 10; // 应用面符号 backgroundCalloutSymbol.BackgroundSymbol = polySymbol; // 设置边线 var accentSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 2, SimpleLineStyle.Solid); backgroundCalloutSymbol.AccentBarSymbol = accentSymbol; // 设置标注文字的偏移量 backgroundCalloutSymbol.Margin = new CIMTextMargin { Left = 5, Right = 5, Top = 5, Bottom = 5 }; // 应用引线给标注符号 textSymbol.Callout = backgroundCalloutSymbol; 7、在视图中创建曲线文本 // 创建一条贝赛尔曲线 Coordinate2D pt1 = new Coordinate2D(3.6, 7.5); Coordinate2D pt2 = new Coordinate2D(4.26, 8); Coordinate2D pt3 = new Coordinate2D(4.93, 7.1); Coordinate2D pt4 = new Coordinate2D(5.6, 7.5); CubicBezierBuilderEx bez = new CubicBezierBuilderEx(pt1, pt2, pt3, pt4); CubicBezierSegment bezSeg = bez.ToSegment(); Polyline bezPl = PolylineBuilderEx.CreatePolyline(bezSeg); // 创建一个CIMTextSymbol CIMTextSymbol sym = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 24, "Comic Sans MS", "Regular"); // 在视图中创建曲线文本 GraphicElement bezTxtElm = ElementFactory.Instance.CreateTextGraphicElement(layout, TextType.SplinedText, bezPl, sym, "Curved Text", "New Splinned Text");
【ArcGISPro二次开发】(81):文本符号_CIMTextSymbol由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【ArcGISPro二次开发】(81):文本符号_CIMTextSymbol”