ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.CIM Namespace / HorizontalAlignment Enumeration
Example Example

In This Topic
    HorizontalAlignment Enumeration
    In This Topic
    Horizontal alignment types.
    Syntax
    Members
    MemberDescription
    Center Centered.
    Justify Justified alignment.
    Left Left aligned.
    Right Right aligned.
    Example
    Annotation Construction Tool
    //In your config.daml...set the categoryRefID
    //<tool id="..." categoryRefID="esri_editing_construction_annotation" caption="Create Anno" ...>
    
    //Sketch type Point or Line or BezierLine in the constructor...
    //internal class AnnoConstructionTool : MapTool  {
    //  public AnnoConstructionTool()  {
    //    IsSketchTool = true;
    //    UseSnapping = true;
    //    SketchType = SketchGeometryType.Point;
    //
    
    protected async override Task<bool> OnSketchCompleteAsync(Geometry geometry)
    {
      if (CurrentTemplate == null || geometry == null)
        return false;
    
      // Create an edit operation
      var createOperation = new EditOperation();
      createOperation.Name = string.Format("Create {0}", CurrentTemplate.Layer.Name);
      createOperation.SelectNewFeatures = true;
    
      var insp = CurrentTemplate.Inspector;
      var result = await QueuedTask.Run(() =>
      {
        // get the annotation properties class
        AnnotationProperties annoProperties = insp.GetAnnotationProperties();
        // set custom annotation properties
        annoProperties.TextString = "my custom text";
        annoProperties.Color = ColorFactory.Instance.RedRGB;
        annoProperties.FontSize = 24;
        annoProperties.FontName = "Arial";
        annoProperties.HorizontalAlignment = ArcGIS.Core.CIM.HorizontalAlignment.Right;
        annoProperties.Shape = geometry;
        // assign annotation properties back to the inspector
        insp.SetAnnotationProperties(annoProperties);
    
        // Queue feature creation
        createOperation.Create(CurrentTemplate.Layer, insp);
    
        if (!createOperation.IsEmpty)
        {
          // Execute the operation
          return createOperation.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not
        }
        else
          return false;
      });
      return result;
    }
    
    Modify Annotation Text Graphic
    await QueuedTask.Run(() =>
    {
    
      var selection = annoLayer.GetSelection();
      if (selection.GetCount() == 0)
        return;
    
      // use the first selelcted feature 
      //at 2.x - var insp = new Inspector(true);
      var insp = new Inspector();
      insp.Load(annoLayer, selection.GetObjectIDs().FirstOrDefault());
    
      // getAnnoProperties should return null if not an annotation feature
      AnnotationProperties annoProperties = insp.GetAnnotationProperties();
      // get the textGraphic
      CIMTextGraphic textGraphic = annoProperties.TextGraphic;
    
      // change text
      textGraphic.Text = "Hello world";
    
      // set x,y offset via the symbol
      var symbol = textGraphic.Symbol.Symbol;
      var textSymbol = symbol as CIMTextSymbol;
      textSymbol.OffsetX = 2;
      textSymbol.OffsetY = 3;
    
      textSymbol.HorizontalAlignment = HorizontalAlignment.Center;
    
      // load the updated textGraphic
      annoProperties.LoadFromTextGraphic(textGraphic);
      // assign the annotation properties back 
      insp.SetAnnotationProperties(annoProperties);
    
      EditOperation op = new EditOperation();
      op.Name = "modify symbol";
      op.Modify(insp);
      if (!op.IsEmpty)
      {
        bool result = op.Execute(); //Execute and ExecuteAsync will return true if the operation was successful and false if not
      }
    });
    
    Inheritance Hierarchy

    System.Object
       System.ValueType
          System.Enum
             ArcGIS.Core.CIM.HorizontalAlignment

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also