public override void DrawRect <TRectangle, TPen>(TRectangle rect, TPen pen) { var useRect = GetAbsoluteGdiRectangle(rect); var usePen = GdiTypeConverter.GetPen(pen); Graphics.DrawRectangle(usePen, useRect); }
public override void DrawLine <TPen, TPoint1, TPoint2>(TPen pen, TPoint1 pt1, TPoint2 pt2) { var usePen = GdiTypeConverter.GetPen(pen); var l1 = GetAbsoluteGdiPoint(pt1); var l2 = GetAbsoluteGdiPoint(pt2); Graphics.DrawLine(usePen, l1, l2); }
public override void DrawLines(IPen pen, IPoint2D[] points) { var usePen = GdiTypeConverter.GetPen(pen); var gPoints = new PointF[points.Length]; for (var c = 0; c < points.Length; c++) { gPoints[c] = GetAbsoluteGdiPoint(points[c]); } Graphics.DrawLines(usePen, gPoints); }
public override void DrawEllipse <TPoint, TPen>(TPoint center, Double radius, TPen pen) { var c = _boxModel.GetAbsolutePoint(center, ZoomLevel); var usePen = GdiTypeConverter.GetPen(pen); var asRect = new Rectangle(Convert.ToInt32(c.X - radius), Convert.ToInt32(c.Y - radius), Convert.ToInt32(radius * 2), Convert.ToInt32(radius * 2)); Graphics.DrawEllipse(usePen, asRect); }
public override void DrawRoundedRect <TRectangle, TPen, TThickness>(TRectangle rect, TPen pen, TThickness cornerRadii) { if (cornerRadii.IsEmpty) { DrawRect(rect, pen); return; } var useRect = _boxModel.GetAbsoluteRect(rect, ZoomLevel); var usePen = GdiTypeConverter.GetPen(pen); using (var path = new GdiGraphicsPath()) { path.SetRoundedRectangle(useRect, cornerRadii); Graphics.DrawPath(usePen, path.Path); } }