public override void ToolMouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { RectangleWithText rectangle1 = (this.classDiagram.listDrawingObjects[0] as RectangleWithText); RectangleWithText rectangle2 = (this.classDiagram.listDrawingObjects[1] as RectangleWithText); RectangleWithText rectangle3 = (this.classDiagram.listDrawingObjects[2] as RectangleWithText); int width = e.X - rectangle1.X; int height = e.Y - rectangle1.Y; height /= 3; if (width > 0 && height > 0) { //1 rectangle1.Width = width; rectangle1.Height = height * 2; //2 rectangle2.Width = width; rectangle2.Height = height / 2; rectangle2.Y = rectangle1.Y + rectangle1.Height; //3 rectangle3.Width = width; rectangle3.Height = height / 2; rectangle3.Y = rectangle2.Y + rectangle2.Height; } } }
private void DrawDataCoordinates(Graphics gr, PathData pathData) { Color textColor = Color.White; var fontSize = 1.0f; //GraphicsState state = gr.Save(); //gr.ResetTransform(); //gr.ScaleTransform(10.0f, 10.0f, MatrixOrder.Prepend); //gr.TranslateTransform(-1.0f, -10f, MatrixOrder.Prepend); using (var drawFont = new System.Drawing.Font("Arial", fontSize)) using (var drawBrush = new System.Drawing.SolidBrush(textColor)) { bool nextOneIsTerminator = false; int arrayLength = pathData.Points.Length; for (int i = arrayLength - 1; i >= 0; i--) { var x = pathData.Points[i].X; var y = pathData.Points[i].Y; // Since were enumerating the array backwards, // we want to see if the next Y value is zero. // If the next Y value is zero, then we can stop // rendering values (after we complete the current one) if (y == 0) { nextOneIsTerminator = true; } //var nextIndex = i - 1; //if (nextIndex >= 0) //{ // if (pathData.Points[nextIndex].Y == 0) // { // nextOneIsTerminator = true; // } //} var y2 = y; var drawString = $"{x}x{y}"; var drawFormat = new System.Drawing.StringFormat(); //gr.DrawString(drawString, drawFont, drawBrush, x, y2, drawFormat); var rect = new RectangleF(new PointF(x, y2), new Size(2, 4)); var temp = new RectangleWithText(rect, drawString); temp.Draw(gr); if (nextOneIsTerminator == true) { break; } } } //gr.Restore(state); }