ArcGIS Pro SDK开发从别的收集
来自https://blog.csdn.net/baidu_28157641/article/details/109499943
粘贴图层符号系统:
注意:并且这个操作不能被撤销和重做,事实上,使用Pro中自带的 应用图层的符号设置 工具执行这一操作也不能被撤销和重做。
protected override async void OnClick() { await QueuedTask.Run(async () => { try { var mapView = MapView.Active; if (mapView.GetSelectedLayers().Count() < 2) MessageBox.Show("运行时出现异常" + "\r\n" + "请选择两个或两个以上几何类型相同且名称不同的图层再进行操作"); else { var sourceLayer = mapView.GetSelectedLayers()[0] as FeatureLayer; for (int i = 1; i< mapView.GetSelectedLayers().Count(); i++) { var applyLayer = mapView.GetSelectedLayers()[i] as FeatureLayer; // Place parameters into an array var parameters = Geoprocessing.MakeValueArray(applyLayer, sourceLayer); var gpResult = await Geoprocessing.ExecuteToolAsync("management.ApplySymbologyFromLayer", parameters); if (gpResult.IsFailed) MessageBox.Show("运行时出现异常" + "\r\n" + "请选择两个或两个以上几何类型相同且名称不同的图层再进行操作"); } } } catch { // Catch any exception found and display in a message box MessageBox.Show("运行时出现异常" + "\r\n" + "请选择两个或两个以上几何类型相同且名称不同的图层再进行操作"); } }); }
一键移除所有图层
internal class Button_RemoveAllLayers : Button public void RemoveAllLayers() { var mv = MapView.Active; var lyrs = mv.Map.Layers; //RemoveLayers方法必须在QueuedTask.Run中运行 QueuedTask.Run(() => { mv.Map.RemoveLayers(lyrs); }); } protected override void OnClick() { RemoveAllLayers(); }
————————————————
版权声明:本文为CSDN博主「圈圈的圈圈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_28157641/article/details/109499943