ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMStandardLabelPlacementProperties Class / PlaceOnlyInsidePolygon Property
Example

In This Topic
    PlaceOnlyInsidePolygon Property
    In This Topic
    Gets or sets a value indicating whether or not to place the label only inside a polygon.
    Syntax
    Public Property PlaceOnlyInsidePolygon As Boolean
    public bool PlaceOnlyInsidePolygon {get; set;}
    Example
    Modify the Placement/Position of labels - Polygon geometry
    {
      // 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
          theLabelClass.StandardLabelPlacementProperties.PolygonPlacementMethod =
                   StandardPolygonPlacementMethod.AlwaysHorizontal;
          theLabelClass.StandardLabelPlacementProperties.PlaceOnlyInsidePolygon = true;
        }
        else
        {
          //Current labeling engine is Maplex labeling engine
          theLabelClass.MaplexLabelPlacementProperties.PolygonFeatureType =
                                   MaplexPolygonFeatureType.LandParcel;
          theLabelClass.MaplexLabelPlacementProperties.AvoidPolygonHoles = true;
          theLabelClass.MaplexLabelPlacementProperties.PolygonPlacementMethod =
                              MaplexPolygonPlacementMethod.HorizontalInPolygon;
          theLabelClass.MaplexLabelPlacementProperties.CanPlaceLabelOutsidePolygon = true;
        }
    
        lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back
        featureLayer.SetDefinition(lyrDefn); //set the layer's definition
                                             //set the label's visiblity
        featureLayer.SetLabelVisibility(true);
      }
    }
    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also