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(); }
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); }
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; } } } }