Exemple #1
0
 public void draw(System.Drawing.Graphics g)
 {
     g.TranslateTransform(this.x, this.y);
     g.RotateTransform(rotation);
     g.DrawImage(canon, (0 - canon.Width / 2), (0 - canon.Height / 2), canon.Width, canon.Height);
     g.ResetTransform();
 }
Exemple #2
0
        protected virtual void AdjustOrigin(System.Drawing.Graphics g, Point newOrigin, ref Rectangle r) {
            
            Debug.WriteLineIf(GridViewDebugPaint.TraceVerbose,  "Adjusting paint origin to (" + newOrigin.X.ToString(CultureInfo.InvariantCulture) + "," + newOrigin.Y.ToString(CultureInfo.InvariantCulture) + ")");

            g.ResetTransform();
            g.TranslateTransform(newOrigin.X, newOrigin.Y);
            r.Offset(-newOrigin.X, -newOrigin.Y);
        }
Exemple #3
0
 protected virtual void ResetOrigin(System.Drawing.Graphics g) {
     g.ResetTransform();
 }
        internal static void RenderVerticalText(
            System.Drawing.Graphics g,
            string text,
            Rectangle textRect,
            Font textFont,
            Color foreColor,
            StringFormat format,
            bool left)
        {
            if (string.IsNullOrEmpty(text))
            {
                return;
            }

            if (left)
            {
                g.TranslateTransform(textRect.X, textRect.Bottom);
                g.RotateTransform(270F);
            }
            else
            {
                g.TranslateTransform(textRect.Right, textRect.Y);
                g.RotateTransform(90F);
            }

            Rectangle transformRect = new Rectangle(
                0, 0, textRect.Height, textRect.Width);

            try
            {
                using (Brush brush = new SolidBrush(foreColor))
                {
                    g.DrawString(
                        text,
                        textFont,
                        brush,
                        transformRect,
                        format);
                }
            }
            finally
            {
                g.ResetTransform();
            }
        }
        protected override void Render(GH_Canvas canvas, System.Drawing.Graphics graphics, GH_CanvasChannel channel)
        {
            base.Render(canvas, graphics, channel);

              if (m_form == null || m_form.IsDisposed) return;

              if (channel == GH_CanvasChannel.Overlay &&
              (canvas.DrawingMode == GH_CanvasMode.Export ||
              canvas.DrawingMode == GH_CanvasMode.Control)
            )
              {
            Rectangle targetRectangle;
            if (canvas.DrawingMode == GH_CanvasMode.Export)
            {
              System.Windows.Forms.Control editorControl = m_form.m_texteditor;
              if (editorControl == null) return;
              targetRectangle = editorControl.ClientRectangle;
              targetRectangle = m_form.RectangleToScreen(targetRectangle);
            }
            else
            {
              targetRectangle = m_form.DesktopBounds;
            }

            RectangleF windowOnCanvas;
            {
              targetRectangle.Inflate(-1, -1);

              var desktopForm = canvas.RectangleToClient(targetRectangle);
              windowOnCanvas = canvas.Viewport.UnprojectRectangle(desktopForm);
            }

            var transparent = Color.Transparent;

            var desk_tl = new PointF(windowOnCanvas.Left, windowOnCanvas.Top);
            var desk_tr = new PointF(windowOnCanvas.Right, windowOnCanvas.Top);
            var desk_bl = new PointF(windowOnCanvas.Left, windowOnCanvas.Bottom);
            var desk_br = new PointF(windowOnCanvas.Right, windowOnCanvas.Bottom);

            var comp_tl = new PointF(Bounds.Left, Bounds.Top);
            var comp_tr = new PointF(Bounds.Right, Bounds.Top);
            var comp_bl = new PointF(Bounds.Left, Bounds.Bottom);
            var comp_br = new PointF(Bounds.Right, Bounds.Bottom);

            if (Bounds.Top < windowOnCanvas.Top)
              BoxSide(graphics, Color.FromArgb(155,255,255,255), transparent, desk_tl, desk_tr, comp_tl, comp_tr);
            if (Bounds.Right > windowOnCanvas.Right)
              BoxSide(graphics, Color.FromArgb(155, 240, 240, 240), transparent, desk_tr, desk_br, comp_tr, comp_br);
            if (Bounds.Bottom > windowOnCanvas.Bottom)
              BoxSide(graphics, Color.FromArgb(155, 120, 120, 120), transparent, desk_bl, desk_br, comp_bl, comp_br);
            if (Bounds.Left < windowOnCanvas.Left)
              BoxSide(graphics, Color.FromArgb(155, 240, 240, 240), transparent, desk_tl, desk_bl, comp_tl, comp_bl);

            BoxEdge(graphics, Color.Black, Color.Transparent, 1, desk_tl, comp_tl, AnchorStyles.Top | AnchorStyles.Left);
            BoxEdge(graphics, Color.Black, Color.Transparent, 1, desk_tr, comp_tr, AnchorStyles.Top | AnchorStyles.Right);
            BoxEdge(graphics, Color.Black, Color.Transparent, 1, desk_br, comp_br, AnchorStyles.Bottom | AnchorStyles.Right);
            BoxEdge(graphics, Color.Black, Color.Transparent, 1, desk_bl, comp_bl, AnchorStyles.Bottom | AnchorStyles.Left);

            if (canvas.DrawingMode == GH_CanvasMode.Export)
            {
              System.Windows.Forms.Control editorControl = m_form.m_texteditor;
              if (editorControl == null) return;

              using (var bitmap = new Bitmap(editorControl.Width, editorControl.Height))
              {
            editorControl.DrawToBitmap(bitmap, editorControl.Bounds);

            var ot = graphics.Transform;
            var loc = canvas.Viewport.ProjectPoint(windowOnCanvas.Location);

            graphics.ResetTransform();

            graphics.DrawImage(bitmap,
              (int)loc.X, (int)loc.Y,
              editorControl.Width, editorControl.Height);

            graphics.Transform = ot;
              }
            }
              }
        }