The following is code that I am using that doesn't work. It only functions with pixels.
await QueuedTask.Run(() =>
{
System.Drawing.Point pt = System.Windows.Forms.Control.MousePosition;
MapPoint mapPt = MapView.Active.ScreenToMap(new Point(pt.X, pt.Y));
double bufferRadius = 100;
ArcGIS.Core.Geometry.Polygon poly = CreateHaloPolygon(mapPt, Convert.ToInt32(bufferRadius), out double haloRadius);
//_graphics.Add(new GraphicProperties(null, null, polySymRef, poly, lineColor, bufferRadius, bufferInfo[2]));
_graphics.Add(new GraphicProperties(null, null, polySymRef, poly, lineColor, haloRadius, bufferInfo[2]));
});
private ArcGIS.Core.Geometry.Polygon CreateHaloPolygon(MapPoint mapPoint, int pixels, out double radius)
{
// Get the halo radius
Point screenPoint = MapView.Active.MapToScreen(mapPoint);
Point radiusScreenPoint = new Point((screenPoint.X + pixels), screenPoint.Y);
MapPoint radiusMapPoint = MapView.Active.ScreenToMap(radiusScreenPoint);
radius = GeometryEngine.Instance.Distance(mapPoint, radiusMapPoint);
// Build a circle geometry
Coordinate2D coord2D = new Coordinate2D(mapPoint);
EllipticArcSegment arcSegment = EllipticArcBuilder.CreateEllipticArcSegment(coord2D, radius, esriArcOrientation.esriArcClockwise, MapView.Active.Map.SpatialReference);
PolygonBuilder polyBuilder = new PolygonBuilder(new[] { arcSegment });
return polyBuilder.ToGeometry();
}