コード例 #1
0
ファイル: Behavior.cs プロジェクト: 15831944/Test3-1
        private Arrow shouldSplitArrow(PointF point, ref int segmentToSplit)
        {
            if (!fc.AllowSplitArrows)
            {
                return(null);
            }

            Arrow arrow = fc.GetArrowAt(point,
                                        Constants.getLineHitTest(fc.MeasureUnit) / 2, true, ref segmentToSplit);

            if (arrow != null && (arrow == fc.ActiveObject || arrow == fc.getAutoHObj()))
            {
                if (!arrow.pointInHandle(point) && arrow.Style != ArrowStyle.Bezier)
                {
                    return(arrow);
                }

                int handle = -1;
                segmentToSplit = 0;
                if (arrow.Style == ArrowStyle.Cascading && arrow.SegmentCount == 2 &&
                    arrow.HitTestHandle(point, ref handle) && handle == 1)
                {
                    return(arrow);
                }
            }

            return(null);
        }