-
Notifications
You must be signed in to change notification settings - Fork 117
ProSnippets TextSymbols
All ProSnippets listed here are also used by the following sample code: TextSymbols sample code
Language: C#
Subject: Map-Authoring
Contributor: ArcGIS Pro SDK Team <[email protected]>
Organization: esri, http://www.esri.com
Date: 1/2/2024
ArcGIS Pro: 3.3
Visual Studio: 2022
.NET Target Framework: .Net 6
Creates a simple black text symbol with a size of 8.5, Font Family "Corbel" and Font Style of "Regular".
private static Task<CIMTextSymbol> CreateSimpleTextAsync()
{
return QueuedTask.Run <CIMTextSymbol>(() =>
{
//Create a simple text symbol
return SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 8.5, "Corbel", "Regular");
});
}
Creates a text symbol with a red halo
private static Task<CIMTextSymbol> CreateTextSymbolWithHaloAsync()
{
return QueuedTask.Run<CIMTextSymbol>(() =>
{
//create a polygon symbol for the halo
var haloPoly = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.RedRGB, SimpleFillStyle.Solid);
//create text symbol using the halo polygon
return SymbolFactory.Instance.ConstructTextSymbol(haloPoly, 10, "Arial", "Bold");
});
}
Returns a boolean value indicating if the font Arial Bold exists on the system. Specific font formats can be specified. For variable fonts, specific variations can be checked for.
private static bool CheckIfFontExists()
{
return SymbolFactory.Instance.IsFontAvailable("Arial", "Bold", FontType.Unspecified, null);
}
Creates a simple line callout text symbol. The CIMSimpleLineCallout created is a dash-dot-dash line symbol with an offset of 10 from the geometry being labeled.
private static Task<CIMTextSymbol> CreateSimpleLineCalloutAsync()
{
return QueuedTask.Run<CIMTextSymbol>(() => {
//create a text symbol
var textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 10, "Verdana", "Regular");
//Create a line call out
var lineCalloutSymbol = new CIMSimpleLineCallout();
//Get a line symbol
var lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot);
//assign the line symbol to the callout
lineCalloutSymbol.LineSymbol = lineSymbol;
//Offset for the text
textSymbol.OffsetX = 10;
textSymbol.OffsetY = 10;
//Assign the callout to the text symbol
textSymbol.Callout = lineCalloutSymbol;
return textSymbol;
});
}
Creates a black banner balloon callout text symbol. The CIMBalloonCallout created is a rectangular polygon with rounded corners.
private static Task<CIMTextSymbol> CreateBalloonCalloutAsync()
{
return QueuedTask.Run<CIMTextSymbol>(() =>
{
//create a text symbol
var textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 11, "Corbel", "Regular");
//A balloon callout
var balloonCallout = new CIMBalloonCallout();
//set the callout's style
balloonCallout.BalloonStyle = BalloonCalloutStyle.RoundedRectangle;
//Create a solid fill polygon symbol for the callout.
var polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.BlackRGB, SimpleFillStyle.Solid);
//Set the callout's background to be the black polygon symbol
balloonCallout.BackgroundSymbol = polySymbol;
//margin inside the callout to place the text
balloonCallout.Margin = new CIMTextMargin
{
Left = 5,
Right = 5,
Bottom = 5,
Top = 5
};
//assign the callout to the text symbol's callout property
textSymbol.Callout = balloonCallout;
return textSymbol;
});
}
Creates a highway shield callout text symbol. The CIMPointSymbolCallout created is a highway shield point symbol from the ArcGIS 2D style.
private static Task<CIMTextSymbol> CreatePointCallOutAsync()
{
return QueuedTask.Run<CIMTextSymbol>(() =>
{
//create a text symbol
var textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 6, "Tahoma", "Bold");
//Create a call out
var shieldCalloutSymbol = new CIMPointSymbolCallout();
//Get a Shield symbolStyleItem from ArcGIS 2D StyleProjectitem
var symbolStyleItem = GetPointSymbol("ArcGIS 2D", "Shield 1");
//assign the point symbol (Highway shield) to the callout
shieldCalloutSymbol.PointSymbol = symbolStyleItem.Symbol as CIMPointSymbol;
shieldCalloutSymbol.PointSymbol.SetSize(18.0); //set symbol size
//Assign the callout to the text symbol
textSymbol.Callout = shieldCalloutSymbol;
return textSymbol;
});
}
Creates a solid fill background text symbol with an Accent bar and leader line. The CIMBackgroundCallout created has a solid fill aqua polygon, with a black dash-dot-dash leader line and a solid accent bar.
private static Task<CIMTextSymbol> CreateBackgroundCalloutAsync()
{
return QueuedTask.Run<CIMTextSymbol>(() =>
{
var textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 8, "Tahoma", "Bold");
//Create a call out
var backgroundCalloutSymbol = new CIMBackgroundCallout();
//Leader line
//Get a line symbol
var lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot);
//Create a solid fill polygon symbol for the callout.
var aquaBackground = ColorFactory.Instance.CreateRGBColor(190, 255, 232, 100);
var polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(aquaBackground, SimpleFillStyle.Solid);
//assign the line to the callout
backgroundCalloutSymbol.LeaderLineSymbol = lineSymbol;
//Offset for the text
textSymbol.OffsetX = 10;
textSymbol.OffsetY = 10;
//Assign the polygon to the background callout
backgroundCalloutSymbol.BackgroundSymbol = polySymbol;
//Accent bar
var accentSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 2, SimpleLineStyle.Solid);
backgroundCalloutSymbol.AccentBarSymbol = accentSymbol;
//Set margins for the callout
backgroundCalloutSymbol.Margin = new CIMTextMargin
{
Left = 5,
Right = 5,
Top = 5,
Bottom = 5
};
//assign the callout to the textSymbol
textSymbol.Callout = backgroundCalloutSymbol;
return textSymbol;
});
}
Home | API Reference | Requirements | Download | Samples