// 绘制图形完成事件 void toolBox_CommondExecutedEvent(object sender, MapFrame.Core.Model.MessageEventArgs e) { try { var tool = MainCtrl.GlobeMapContainer.globeCtrl.mapLogic.GetToolBox(); if (tool == null) { return; } tool.CommondExecutedEvent -= toolBox_CommondExecutedEvent; tool.ReleaseTool(); var element = e.Data as IMFElement; if (element == null) { return; } graphicNames.Add(element.ElementName); } catch (Exception) { } }
// 框选完成 private void toolBox_CommondExecutedEvent(object sender, MapFrame.Core.Model.MessageEventArgs e) { if (this.IsDisposed) { return; } toolBox.CommondExecutedEvent -= new EventHandler <MapFrame.Core.Model.MessageEventArgs>(toolBox_CommondExecutedEvent); this.Visible = true; SetChartVisible(true); if (e.ToolType != MapFrame.Core.Model.ToolTypeEnum.Select) { return; } if (e.Data == null) { return; } List <IMFElement> elements = e.Data as List <IMFElement>; if (elements == null || elements.Count <= 0) { string msg = "您所框选的区域没有动目标,可尝试重新框选。"; UpdateUI(msg); return; } int totalNumber = elements.Count; int skyCount = 0; // 空中目标 int seaCount = 0; // 海上目标 int landCount = 0; // 陆地目标 int unkonwCount = 0; // 不明目标 foreach (IMFElement ele in elements) { switch (ele.BelongLayer.LayerName) { case "天空态势图层": skyCount++; break; case "陆地态势图层": seaCount++; break; case "海洋态势图层": landCount++; break; case "未知目标图层": unkonwCount++; break; default: break; } } StringBuilder sb = new StringBuilder(); sb.AppendLine(string.Format("当前区域共有目标:{0} 个\n", totalNumber)); sb.AppendLine(string.Format("空中目标 {0} 条\n", skyCount)); sb.AppendLine(string.Format("海上目标 {0} 条\n", seaCount)); sb.AppendLine(string.Format("陆地目标 {0} 条\n", landCount)); sb.AppendLine(string.Format("不明目标 {0} 条", unkonwCount)); UpdateUI(sb); UpdateChart(skyCount, seaCount, landCount, unkonwCount); }