private void MyDrawObject_DrawComplete(object sender, ESRI.ArcGIS.Client.DrawEventArgs args)
{
Polygon polygon = args.Geometry is Polygon ? args.Geometry as Polygon: new Polygon();
if (args.Geometry is Polyline)
{
Polyline source = args.Geometry as Polyline;
foreach (var path in source.Paths)
polygon.Rings.Add(path);
}
GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;
ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic()
{
Geometry = polygon,
Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as Symbol
};
graphicsLayer.Graphics.Add(graphic);
}
DrawMode.Freehand results to a polyline geometry. If your QueryTask need a polygon geometry, you can convert your polyline to polygon.private void MyDrawObject_DrawComplete(object sender, ESRI.ArcGIS.Client.DrawEventArgs args) { Polygon polygon = args.Geometry is Polygon ? args.Geometry as Polygon: new Polygon(); if (args.Geometry is Polyline) { Polyline source = args.Geometry as Polyline; foreach (var path in source.Paths) polygon.Rings.Add(path); } GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() { Geometry = polygon, Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as Symbol }; graphicsLayer.Graphics.Add(graphic); }