protected override void DrawArrow(IGraphicContext graphicContext) { float xStart = m_StartColumn.Body.Middle + GetXFromCenterRelative(m_Signal.Start); float xEnd = m_EndColumn.Body.Middle + GetXFromCenterRelative(m_Signal.End); float y = m_Row.Body.Bottom; var start = new Point(xStart, y); var end = new Point(xEnd, y); switch (m_Signal.SignalType) { case SignalType.Call: graphicContext.DrawArrow( start, end, Style.Signal.Width, Style.Signal.ArrowCapSize, Style.Signal.ArrowCapSize, Style.Signal.LineColor, Style.Common.LineStyle); break; case SignalType.Return: graphicContext.DrawDashedArrow( start, end, Style.Signal.Width, Style.Signal.ArrowCapSize, Style.Signal.ArrowCapSize, Style.Signal.LineColor, Style.Common.LineStyle); break; } }