欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > ArcGIS Pro SDK (七)编辑 14 编辑选项

ArcGIS Pro SDK (七)编辑 14 编辑选项

2024/10/25 0:35:31 来源:https://blog.csdn.net/szy13323042191/article/details/140215817  浏览:    关键词:ArcGIS Pro SDK (七)编辑 14 编辑选项

ArcGIS Pro SDK (七)编辑 14 编辑选项

文章目录

  • ArcGIS Pro SDK (七)编辑 14 编辑选项
    • 获取/设置编辑选项
    • 获取草图折点符号系统选项
    • 获取草图线段符号系统选项
    • 设置草图顶点符号选项
    • 设置草图线段符号选项
    • 将草图顶点符号设置回默认值
    • 将草图线段符号设置回默认值

环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0

获取/设置编辑选项

// 切换、切换选项值
var options = ApplicationOptions.EditingOptions;options.EnforceAttributeValidation = !options.EnforceAttributeValidation;
options.WarnOnSubtypeChange = !options.WarnOnSubtypeChange;
options.InitializeDefaultValuesOnSubtypeChange = !options.InitializeDefaultValuesOnSubtypeChange;
options.UncommitedAttributeEdits = (options.UncommitedAttributeEdits == UncommitedEditMode.AlwaysPrompt) ? UncommitedEditMode.Apply : UncommitedEditMode.AlwaysPrompt;options.StretchGeometry = !options.StretchGeometry;
options.StretchTopology = !options.StretchTopology;
options.UncommitedGeometryEdits = (options.UncommitedGeometryEdits == UncommitedEditMode.AlwaysPrompt) ? UncommitedEditMode.Apply : UncommitedEditMode.AlwaysPrompt;options.ActivateMoveAfterPaste = !options.ActivateMoveAfterPaste;
options.ShowFeatureSketchSymbology = !options.ShowFeatureSketchSymbology;
options.FinishSketchOnDoubleClick = !options.FinishSketchOnDoubleClick;
options.AllowVertexEditingWhileSketching = !options.AllowVertexEditingWhileSketching;
options.ShowDeleteDialog = !options.ShowDeleteDialog;
options.EnableStereoEscape = !options.EnableStereoEscape;
options.DragSketch = !options.DragSketch;
options.ShowDynamicConstraints = !options.ShowDynamicConstraints;
options.IsDeflectionDefaultDirectionConstraint = !options.IsDeflectionDefaultDirectionConstraint;
options.IsDirectionDefaultInputConstraint = !options.IsDirectionDefaultInputConstraint;
options.ShowEditingToolbar = !options.ShowEditingToolbar;
options.ToolbarPosition = (options.ToolbarPosition == ToolbarPosition.Bottom) ? ToolbarPosition.Right : ToolbarPosition.Bottom;
options.ToolbarSize = (options.ToolbarSize == ToolbarSize.Medium) ? ToolbarSize.Small : ToolbarSize.Medium;
options.MagnifyToolbar = !options.MagnifyToolbar;options.EnableEditingFromEditTab = !options.EnableEditingFromEditTab;
options.AutomaticallySaveEdits = !options.AutomaticallySaveEdits;
options.AutoSaveByTime = !options.AutoSaveByTime;
options.SaveEditsInterval = (options.AutomaticallySaveEdits) ? 20 : 10;
options.SaveEditsOperations = (options.AutomaticallySaveEdits) ? 60 : 30;
options.SaveEditsOnProjectSave = !options.SaveEditsOnProjectSave;
options.ShowSaveEditsDialog = !options.ShowSaveEditsDialog;
options.ShowDiscardEditsDialog = !options.ShowDiscardEditsDialog;
options.DeactivateToolOnSaveOrDiscard = !options.DeactivateToolOnSaveOrDiscard;
options.NewLayersEditable = !options.NewLayersEditable;

获取草图折点符号系统选项

var options = ApplicationOptions.EditingOptions;// 必须使用 QueuedTask
QueuedTask.Run(() =>{// 有 4 种顶点符号设置 - 选中的、未选中的和当前选中的和未选中的顶点。var reg_select = options.GetVertexSymbolOptions(VertexSymbolType.RegularSelected);var reg_unsel = options.GetVertexSymbolOptions(VertexSymbolType.RegularUnselected);var curr_sel = options.GetVertexSymbolOptions(VertexSymbolType.CurrentSelected);var curr_unsel = options.GetVertexSymbolOptions(VertexSymbolType.CurrentUnselected);// 转换选项为符号使用 GetPointSymbolvar reg_sel_pt_symbol = reg_select.GetPointSymbol();// 同样适用于 reg_unsel、curr_sel、curr_unsel});

获取草图线段符号系统选项

// var options = ApplicationOptions.EditingOptions;
QueuedTask.Run(() =>{var seg_options = options.GetSegmentSymbolOptions();// 转换选项为符号使用 SymbolFactory。注意:这是近似值....草图不直接使用 CIM 来表示段var layers = new List<CIMSymbolLayer>();var stroke0 = SymbolFactory.Instance.ConstructStroke(seg_options.PrimaryColor, seg_options.Width, SimpleLineStyle.Dash);layers.Add(stroke0);if (seg_options.HasSecondaryColor) {var stroke1 = SymbolFactory.Instance.ConstructStroke(seg_options.SecondaryColor, seg_options.Width, SimpleLineStyle.Solid);layers.Add(stroke1);}// 仅使用段符号var sketch_line = new CIMLineSymbol() {SymbolLayers = layers.ToArray()};});

设置草图顶点符号选项

// var options = ApplicationOptions.EditingOptions;
QueuedTask.Run(() =>{// 修改常规未选定顶点符号// 默认是绿色、空心、方形、5 点。修改为蓝色轮廓、菱形、10 点var vertexSymbol = new VertexSymbolOptions(VertexSymbolType.RegularUnselected);vertexSymbol.OutlineColor = ColorFactory.Instance.BlueRGB;vertexSymbol.MarkerType = VertexMarkerType.Diamond;vertexSymbol.Size = 10;// 是否有效?if (options.CanSetVertexSymbolOptions(VertexSymbolType.RegularUnselected, vertexSymbol)) {// 应用修改options.SetVertexSymbolOptions(VertexSymbolType.RegularUnselected, vertexSymbol);}});

设置草图线段符号选项

// var options = ApplicationOptions.EditingOptions;
QueuedTask.Run(() =>{// 修改段符号主要颜色为绿色,宽度为 1 点var segSymbol = options.GetSegmentSymbolOptions();segSymbol.PrimaryColor = ColorFactory.Instance.GreenRGB;segSymbol.Width = 1;// 是否有效?if (options.CanSetSegmentSymbolOptions(segSymbol)) {// 应用修改options.SetSegmentSymbolOptions(segSymbol);}});

将草图顶点符号设置回默认值

// var options = ApplicationOptions.EditingOptions;
QueuedTask.Run(() =>{// 同样适用于常规选定和当前选定、未选定的顶点符号var def_reg_unsel = options.GetDefaultVertexSymbolOptions(VertexSymbolType.RegularUnselected);// 应用默认值options.SetVertexSymbolOptions(VertexSymbolType.RegularUnselected, def_reg_unsel);});

将草图线段符号设置回默认值

// var options = ApplicationOptions.EditingOptions;
QueuedTask.Run(() =>{var def_seg = options.GetDefaultSegmentSymbolOptions();options.SetSegmentSymbolOptions(def_seg);});

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com