//Note: call within QueuedTask.Run() //Get the layer's definition var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer; //Get the label classes - we need the first one var listLabelClasses = lyrDefn.LabelClasses.ToList(); var theLabelClass = listLabelClasses.FirstOrDefault(); //Modify label Placement //Check if the label engine is Maplex or standard. CIMGeneralPlacementProperties labelEngine = MapView.Active.Map.GetDefinition().GeneralPlacementProperties; if (labelEngine is CIMStandardGeneralPlacementProperties) { //Current labeling engine is Standard labeling engine var lineLablePosition = new CIMStandardLineLabelPosition { Perpendicular = true, Parallel = false, ProduceCurvedLabels = false, Horizontal = false, OnTop = true }; theLabelClass.StandardLabelPlacementProperties.LineLabelPosition = lineLablePosition; } else //Current labeling engine is Maplex labeling engine { theLabelClass.MaplexLabelPlacementProperties.LinePlacementMethod = MaplexLinePlacementMethod.CenteredPerpendicularOnLine; theLabelClass.MaplexLabelPlacementProperties.LineFeatureType = MaplexLineFeatureType.General; } //theLabelClass.MaplexLabelPlacementProperties.LinePlacementMethod = MaplexLinePlacementMethod.CenteredPerpendicularOnLine; lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back featureLayer.SetDefinition(lyrDefn); //set the layer's definition
Target Platforms: Windows 11, Windows 10