// 1. Add an embeddable control using VS template. This is the daml entry //<categories> // <updateCategory refID = "esri_embeddableControls"> // <insertComponent id="SketchTip_EmbeddableControl1" className="EmbeddableControl1ViewModel"> // <content className = "EmbeddableControl1View"/> // </insertComponent> // </updateCategory> // </categories> // 2. Define UI controls on the EmbeddableControl1View // 3. Define properties on the EmbeddableControl1ViewModel which // bind to the UI controls on the EmbeddableControl1View /// <summary> /// Represents a map sketch tool that displays a custom UI sketch tip using an embeddable control. /// </summary> public class SketchToolWithUISketchTip : MapTool { public SketchToolWithUISketchTip() { IsSketchTool = true; SketchType = SketchGeometryType.Line; SketchOutputMode = SketchOutputMode.Map; SketchTipID = "SketchTip_EmbeddableControl1"; } protected override Task<bool> OnSketchModifiedAsync() { var sketchTipVM = SketchTipEmbeddableControl as EmbeddableControl1ViewModel; if (sketchTipVM != null) { // modify properties on the sketchTipVM QueuedTask.Run(async () => { var sketch = await GetCurrentSketchAsync(); var line = sketch as Polyline; var count = line.PointCount; sketchTipVM.Text = "Vertex Count " + count.ToString(); }); } return base.OnSketchModifiedAsync(); } } /// <summary> /// Represents the view model for an embeddable control, providing data and configuration options for the control's /// behavior and appearance. /// </summary> /// <remarks>This class is typically used to supply options and state to an embeddable control within the /// ArcGIS Pro framework. It is constructed with configuration data and a flag indicating whether options can be /// changed at runtime.</remarks> public class EmbeddableControl1ViewModel : ArcGIS.Desktop.Framework.Controls.EmbeddableControl { public EmbeddableControl1ViewModel(XElement options, bool canChangeOptions) : base(options, canChangeOptions) { } public string Text; }
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)