protected DrawAnnotationRenderer(DrawAnnotation data)
 {
     _data = data;
     _data.FillInvalidated        += HandleFillInvalidated;
     _data.FillGlowInvalidated    += HandleFillGlowInvalidated;
     _data.OutlineInvalidated     += HandleOutlineInvalidated;
     _data.OutlineGlowInvalidated += HandleOutlineGlowInvalidated;
 }
        protected override void DisposeManaged()
        {
            if (_data != null)
            {
                _data.FillInvalidated        -= HandleFillInvalidated;
                _data.FillGlowInvalidated    -= HandleFillGlowInvalidated;
                _data.OutlineInvalidated     -= HandleOutlineInvalidated;
                _data.OutlineGlowInvalidated -= HandleOutlineGlowInvalidated;
                _data = null;
            }

            if (_fillBrush != null)
            {
                _fillBrush.Dispose();
                _fillBrush = null;
            }

            if (_fillGlowBrush != null)
            {
                _fillGlowBrush.Dispose();
                _fillGlowBrush = null;
            }

            if (_outlinePen != null)
            {
                _outlinePen.Dispose();
                _outlinePen = null;
            }

            if (_outlineGlowPen != null)
            {
                _outlineGlowPen.Dispose();
                _outlineGlowPen = null;
            }

            base.DisposeManaged();
        }