private async void MouseRightButtonUp(object parameter) { Point curPoint = Mouse.GetPosition(tagView as FrameworkElement); MapPoint tagPoint = tagView.ScreenToLocation(curPoint); _graphicsOverlay = tagView.GraphicsOverlays["drawGraphicsOverlay"]; var ga = await _graphicsOverlay.HitTestAsync(tagView, curPoint); if (ga != null) { if (ga.Geometry.GeometryType == GeometryType.Point) { drawPointGraphic = ga; drawpointX = (drawPointGraphic.Geometry as MapPoint).X; drawpointY = (drawPointGraphic.Geometry as MapPoint).Y; drawpointZ = (drawPointGraphic.Geometry as MapPoint).Z; if (pointwinshowing == false) { pointWin = new PointToolWin(); pointwinshowing = true; pointWin.ShowDialog(); } } if (ga.Geometry.GeometryType == GeometryType.Polyline) { drawLineGraphic = ga; linegraphictext = drawLineGraphic.Attributes["Label"] as string; linewidth = (drawLineGraphic.Symbol as SimpleLineSymbol).Width; Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection(); foreach (var part in (drawLineGraphic.Geometry as Polyline).Parts) { for (int i = 0; i < part.Count; i++) { var linepart = part.ElementAt(i); tagcol.Add(linepart.StartPoint); if (i == (part.Count - 1)) { tagcol.Add(linepart.EndPoint); } drawLineZ = linepart.StartPoint.Z; } } Linepointcollec = tagcol; if (linewinshowing == false) { LineWin = new LineToolWin(); linewinshowing = true; LineWin.ShowDialog(); } } if (ga.Geometry.GeometryType == GeometryType.Polygon) { drawPolygonGraphic = ga; polygongraphictext = drawPolygonGraphic.Attributes["Label"] as string; Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection(); foreach (var part in (drawPolygonGraphic.Geometry as Polygon).Parts) { for (int i = 0; i < part.Count; i++) { var Polygonpart = part.ElementAt(i); tagcol.Add(Polygonpart.StartPoint); if (i == (part.Count - 1)) { tagcol.Add(Polygonpart.EndPoint); } drawPolygonZ = Polygonpart.StartPoint.Z; } } Polygonpointcollec = tagcol; if (Polygonwinshowing == false) { PolygonWin = new PolygonToolWin(); Polygonwinshowing = true; PolygonWin.ShowDialog(); } } } }
private async void MouseRightButtonUp(object parameter) { Point curPoint = Mouse.GetPosition(tagView as FrameworkElement); MapPoint tagPoint = tagView.ScreenToLocation(curPoint); _graphicsOverlay = tagView.GraphicsOverlays["drawGraphicsOverlay"]; var ga = await _graphicsOverlay.HitTestAsync(tagView, curPoint); if (ga != null) { if(ga.Geometry.GeometryType==GeometryType.Point) { drawPointGraphic = ga; drawpointX = (drawPointGraphic.Geometry as MapPoint).X; drawpointY = (drawPointGraphic.Geometry as MapPoint).Y; drawpointZ = (drawPointGraphic.Geometry as MapPoint).Z; if(pointwinshowing==false) { pointWin = new PointToolWin(); pointwinshowing = true; pointWin.ShowDialog(); } } if (ga.Geometry.GeometryType == GeometryType.Polyline) { drawLineGraphic = ga; linegraphictext = drawLineGraphic.Attributes["Label"] as string; linewidth = (drawLineGraphic.Symbol as SimpleLineSymbol).Width; Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection(); foreach (var part in (drawLineGraphic.Geometry as Polyline).Parts) { for(int i=0;i<part.Count;i++) { var linepart = part.ElementAt(i); tagcol.Add(linepart.StartPoint); if(i==(part.Count-1)) tagcol.Add(linepart.EndPoint); drawLineZ = linepart.StartPoint.Z; } } Linepointcollec = tagcol; if(linewinshowing==false) { LineWin = new LineToolWin(); linewinshowing = true; LineWin.ShowDialog(); } } if (ga.Geometry.GeometryType == GeometryType.Polygon) { drawPolygonGraphic = ga; polygongraphictext = drawPolygonGraphic.Attributes["Label"] as string; Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection(); foreach (var part in (drawPolygonGraphic.Geometry as Polygon).Parts) { for (int i = 0; i < part.Count; i++) { var Polygonpart = part.ElementAt(i); tagcol.Add(Polygonpart.StartPoint); if (i == (part.Count - 1)) tagcol.Add(Polygonpart.EndPoint); drawPolygonZ = Polygonpart.StartPoint.Z; } } Polygonpointcollec = tagcol; if(Polygonwinshowing==false) { PolygonWin = new PolygonToolWin(); Polygonwinshowing = true; PolygonWin.ShowDialog(); } } } }