protected override void OnAnnotationGraphicChanged(AnnotationGraphic oldAnnotationGraphic, AnnotationGraphic annotationGraphic)
        {
            if (oldAnnotationGraphic != null)
            {
                var pointsGraphic = oldAnnotationGraphic.Subject as IPointsGraphic;
                if (pointsGraphic != null)
                {
                    pointsGraphic.Points.PointAdded    -= OnPolygonGraphicClosed;
                    pointsGraphic.Points.PointChanged  -= OnPolygonGraphicClosed;
                    pointsGraphic.Points.PointRemoved  -= OnPolygonGraphicClosed;
                    pointsGraphic.Points.PointsCleared -= OnPolygonGraphicClosed;
                }
            }

            base.OnAnnotationGraphicChanged(oldAnnotationGraphic, annotationGraphic);

            if (annotationGraphic != null)
            {
                var pointsGraphic = annotationGraphic.Subject as IPointsGraphic;
                if (pointsGraphic != null)
                {
                    pointsGraphic.Points.PointAdded    += OnPolygonGraphicClosed;
                    pointsGraphic.Points.PointChanged  += OnPolygonGraphicClosed;
                    pointsGraphic.Points.PointRemoved  += OnPolygonGraphicClosed;
                    pointsGraphic.Points.PointsCleared += OnPolygonGraphicClosed;
                }
            }
        }
 protected override void OnAnnotationGraphicChanged(AnnotationGraphic oldAnnotationGraphic, AnnotationGraphic annotationGraphic)
 {
     base.OnAnnotationGraphicChanged(oldAnnotationGraphic, annotationGraphic);
     if (_firstCalculation)
     {
         base.Callout.Visible = false;
     }
 }