private void RenderTextFramePrimitive(Graphics g, TextFrameRecord textFrame) { var penWidth = ScaleLineWidth(textFrame.LineWidth); var rect = ScreenFromWorld(textFrame.CalculateBounds()); if (textFrame.IsSolid) { using (var brush = new SolidBrush(textFrame.AreaColor)) { DrawingUtils.FillRectangle(g, brush, rect); } } if (textFrame.ShowBorder) { using (var pen = CreatePen(textFrame.Color, penWidth, lineJoin: LineJoin.Miter)) { DrawingUtils.DrawRectangle(g, pen, rect); } // reduce text area according to the penWidth rect.Inflate(-penWidth, -penWidth); } using (var brush = new SolidBrush(textFrame.TextColor)) using (var font = CreateFont(textFrame.FontId)) { DrawingUtils.DrawString(g, textFrame.Text, font, brush, rect, StringAlignment.Near, StringAlignment.Near, textFrame.ClipToRect, textFrame.WordWrap); } }
private void RenderImagePrimitive(Graphics g, ImageRecord image) { var rect = ScreenFromWorld(image.CalculateBounds()); if (_embeddedImages.TryGetValue(image.Filename, out var img)) { g.DrawImage(img, rect); } if (image.IsSolid) { var penWidth = ScaleLineWidth(image.LineWidth); using (var pen = CreatePen(image.Color, penWidth, lineJoin: LineJoin.Miter)) { DrawingUtils.DrawRectangle(g, pen, rect); } } }
private void RenderRectanglePrimitive(Graphics g, RectangleRecord rectangle) { var rect = ScreenFromWorld(rectangle.CalculateBounds()); if (rectangle.IsSolid) { using (var brush = new SolidBrush(rectangle.AreaColor)) { DrawingUtils.FillRectangle(g, brush, rect); } } var penWidth = ScaleLineWidth(rectangle.LineWidth); using (var pen = CreatePen(rectangle.Color, penWidth, lineJoin: LineJoin.Miter)) { DrawingUtils.DrawRectangle(g, pen, rect); } }