/// <summary> /// 根据ptA, ptB的坐标调整line坐标,主要用于裁剪掉位于线框内部的线段 /// </summary> /// <param name="ptA">D1的坐标</param> /// <param name="ptB">D2的坐标</param> /// <param name="line">连接D1,D2的连线</param> protected void AdjustLinkPosition(Link link) { Rect rtA = link.SrcDevice.GetPosition(); Rect rtB = link.DstDevice.GetPosition(); Point ptA = new Point(rtA.Left + link.PTSrcOffset.X, rtA.Top + link.PTSrcOffset.Y); Point ptB = new Point(rtB.Left + link.PTDstOffset.X, rtB.Top + link.PTDstOffset.Y); Line l = Util.Function.CalCrossPoint(ptA, ptB, rtA, rtB); link.PTSRC = new Point(l.X1, l.Y1); link.PTDST = new Point(l.X2, l.Y2); link.adjustTextPosition(); }