Example #1
0
        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);
                }
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
            }
        }