예제 #1
0
        public override IHitTestObject HitTest(HitTestPointData htd)
        {
            HitTestObjectBase result = null;
            GraphicsPath      gp     = GetPath();

            if (_fillBrush.IsVisible && gp.IsVisible((PointF)htd.GetHittedPointInWorldCoord(_transformation)))
            {
                result = new GraphicBaseHitTestObject(this);
            }
            else if (_linePen.IsVisible && gp.IsOutlineVisible((PointF)htd.GetHittedPointInWorldCoord(_transformation), _linePen))
            {
                result = new GraphicBaseHitTestObject(this);
            }
            else
            {
                gp.Transform(htd.GetTransformation(_transformation)); // Transform to page coord
                if (gp.IsOutlineVisible((PointF)htd.HittedPointInPageCoord, new Pen(Color.Black, 6)))
                {
                    result = new GraphicBaseHitTestObject(this);
                }
            }

            if (result != null)
            {
                result.DoubleClick = EhHitDoubleClick;
            }

            return(result);
        }
예제 #2
0
        public override IHitTestObject HitTest(HitTestPointData htd)
        {
            if (_axisStyle.Title != null)
            {
                var titleResult = _axisStyle.Title.HitTest(htd);
                if (null != titleResult)
                {
                    titleResult.Remove = EhTitleRemove;
                    return(titleResult);
                }
            }

            var pt = htd.GetHittedPointInWorldCoord();
            HitTestObjectBase result = null;
            GraphicsPath      gp     = GetSelectionPath();

            if (gp.IsVisible((PointF)pt))
            {
                result = new MyHitTestObject(this);
            }

            if (result != null)
            {
                result.DoubleClick = EhHitDoubleClick;
            }

            return(result);
        }