/// <summary>Just moves all contents in Y coordinate</summary> private static void TranslateYContents(List <Shape> contents, Transaction transaction, float Yoffset) { //Debug.WriteLine("Translate: " + Yoffset); System.Drawing.Drawing2D.Matrix matrix = new System.Drawing.Drawing2D.Matrix(); matrix.Translate(0, Yoffset, System.Drawing.Drawing2D.MatrixOrder.Append); Transformation transform = new TransformAffine(Transformation.Modes.Move, matrix); foreach (Shape shape in contents) { transaction.Edit(shape); shape.ApplyTransformation(transform); } }
private static void TransformContents(List <Shape> contents, Transaction transaction, bool changingDocument, Rectangle newRect, Rectangle oldRect) { System.Drawing.Drawing2D.Matrix matrix = new System.Drawing.Drawing2D.Matrix(); if (!changingDocument) { matrix.Translate(-oldRect.X, -oldRect.Y, System.Drawing.Drawing2D.MatrixOrder.Append); matrix.Scale((float)newRect.Width / oldRect.Width, (float)newRect.Height / oldRect.Height, System.Drawing.Drawing2D.MatrixOrder.Append); matrix.Translate(newRect.X, newRect.Y, System.Drawing.Drawing2D.MatrixOrder.Append); } else { matrix.Scale((float)newRect.Width / oldRect.Width, (float)newRect.Height / oldRect.Height, System.Drawing.Drawing2D.MatrixOrder.Append); } Transformation transform = new TransformAffine(Transformation.Modes.Move, matrix); foreach (Shape shape in contents) { transaction.Edit(shape); shape.ApplyTransformation(transform); } }