The goal is to format feature class labels using a Text Symbol style item from a custom Style
static async Task SetToTextStyle(FeatureLayer featureLayer, string zValueField, string layerName)
{
string style = "Style1";
string labelStyleName = "Label1";
await QueuedTask.Run(() =>
{
IList<SymbolStyleItem> labelStyleItem = GetLabelStyleFromStyle(Project.Current, style, labelStyleName);
var labelStyle = labelStyleItem[0];
// Need to go from a SymbolStyleItem above to a CIMTextSymbol below.
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol();
CIMSymbolReference symbolReferance = textSymbol.MakeSymbolReference();
CIMLabelClass labelClass = new CIMLabelClass()
{
ExpressionEngine = LabelExpressionEngine.Arcade,
Expression = $"\"pH \" + textformatting.newline + $feature.pH", //probably not correct format
TextSymbol = symbolReferance,
Visibility = true
};
CIMFeatureLayer layerDefinition = featureLayer.GetDefinition() as CIMFeatureLayer;
// Code below taken from community sample
// This code appears to do the same thing as line 17
List<CIMLabelClass> listLabelClasses = layerDefinition.LabelClasses.ToList();
CIMLabelClass theLabelClass = listLabelClasses.FirstOrDefault();
featureLayer.SetDefinition(layerDefinition);
featureLayer.SetLabelVisibility(true);
});
}