private void Canvas_MouseMove(object sender, MouseEventArgs e) { var canvas = sender as Canvas; var pos = e.GetPosition(canvas); Debug.WriteLine("{0:N2}:{1:N2}", CentimeterToPixelConverter.ConvertToCmX(pos.X), CentimeterToPixelConverter.ConvertToCmY(pos.Y)); }
void AssociatedObject_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { var pos = e.GetPosition(sender as IInputElement); X = CentimeterToPixelConverter.ConvertToCmX(pos.X); Y = CentimeterToPixelConverter.ConvertToCmY(pos.Y); //Debug.WriteLine("{0:N2}:{1:N2}", CentimeterToPixelConverter.ConvertToCmX(pos.X), CentimeterToPixelConverter.ConvertToCmY(pos.Y)); }
private void Rectangle_MouseMove(object sender, MouseEventArgs e) { var rec = sender as Rectangle; if (rec.IsMouseCaptureWithin) { Vector diff = e.GetPosition(rec) - mouseStartPosition; Item.Y = Math.Max(0, Item.Y + CentimeterToPixelConverter.ConvertToCmY(diff.Y)); Item.X = Math.Max(0, Item.X + CentimeterToPixelConverter.ConvertToCmX(diff.X)); } }
private void letfBottom_MouseMove(object sender, MouseEventArgs e) { var rec = sender as Rectangle; if (rec.IsMouseCaptureWithin) { Vector diff = e.GetPosition(rec) - mouseStartPosition; Item.Height = Math.Max(0, Item.Height + CentimeterToPixelConverter.ConvertToCmY(diff.Y)); Item.Width = Math.Max(0, Item.Width - CentimeterToPixelConverter.ConvertToCmX(diff.X)); if (Item.Width > 0) { Item.X = Math.Max(0, Item.X + CentimeterToPixelConverter.ConvertToCmX(diff.X)); } } }
private void PrintCalibratePage() { var dialog = new System.Windows.Forms.PrintPreviewDialog(); dialog.Document = new PrintDocument(); //dialog.Document.PrinterSettings = dialog.PrinterSettings; dialog.Document.PrintPage += (s, e) => { //Font font1 = new Font("Arial", 11, System.Drawing.FontStyle.Regular); //// Construct a new Rectangle . //Rectangle displayRectangle = // new Rectangle(40, 40, 180, 180); //// Construct 2 new StringFormat objects //StringFormat format1 = new StringFormat(StringFormatFlags.NoClip); //StringFormat format2 = new StringFormat(format1); //// Set the LineAlignment and Alignment properties for //// both StringFormat objects to different values. //format1.LineAlignment = StringAlignment.Near; //format1.Alignment = StringAlignment.Center; //format2.LineAlignment = StringAlignment.Center; //format2.Alignment = StringAlignment.Far; //// Draw the bounding rectangle and a string for each //// StringFormat object. //e.Graphics.DrawRectangle(Pens.Black, displayRectangle); //e.Graphics.DrawString("Showing Format1", font1, // System.Drawing.Brushes.Red, (RectangleF)displayRectangle, format1); //e.Graphics.DrawString("Showing Format2", font1, // System.Drawing.Brushes.Red, (RectangleF)displayRectangle, format2); //return; var x = e.PageSettings.HardMarginX; var y = e.PageSettings.HardMarginY; double lineHeightCm = 1; double lineWidthCm = 1; float lineHeight = (float)CentimeterToPixelConverter.ConvertY(lineHeightCm); float lineWidth = (float)CentimeterToPixelConverter.ConvertX(lineWidthCm); float pWidth = e.PageSettings.PaperSize.Width; float pHight = e.PageSettings.PaperSize.Height; var pen = System.Drawing.Pens.Black; SolidBrush brush = new SolidBrush(System.Drawing.Color.Black); Font font = new Font("Arial", 11, System.Drawing.FontStyle.Regular); e.Graphics.DrawLine(pen, 200 - x, 500 - y, 200 - x, 600 - y); e.Graphics.DrawString("2 дюйма = 5,08 см", font, brush, 220F, 550F); e.Graphics.DrawLine(pen, 10F / 2.54F * 100F - x, 10F / 2.54F * 100F - y, 10F / 2.54F * 100F - x, 15F / 2.54F * 100F - y); e.Graphics.DrawLine(pen, 10F / 2.54F * 100F - x, 10F / 2.54F * 100F - y, 15F / 2.54F * 100F - x, 10F / 2.54F * 100F - y); e.Graphics.DrawString("10 см от верхнего и левого краев", font, brush, 10.5F / 2.54F * 100F, 10.5F / 2.54F * 100F); e.Graphics.DrawLine(pen, 15F / 2.54F * 100F - x, 15F / 2.54F * 100F - y, 15F / 2.54F * 100F - x, 17F / 2.54F * 100F - y); e.Graphics.DrawLine(pen, 15F / 2.54F * 100F - x, 15F / 2.54F * 100F - y, 17F / 2.54F * 100F - x, 15F / 2.54F * 100F - y); e.Graphics.DrawString("15 см от верхнего и левого краев", font, brush, 15.5F / 2.54F * 100F, 15.5F / 2.54F * 100F); e.Graphics.DrawLine(pen, 19F / 2.54F * 100F - x, 25F / 2.54F * 100F - y, 19F / 2.54F * 100F - x, 28F / 2.54F * 100F - y); e.Graphics.DrawLine(pen, 19F / 2.54F * 100F - x, 25F / 2.54F * 100F - y, 21F / 2.54F * 100F - x, 25F / 2.54F * 100F - y); e.Graphics.DrawString("25 от верхнего и\r\n 19 см от левого краев", font, brush, 18F / 2.54F * 100F, 26F / 2.54F * 100F); ////1. top-left conner //e.Graphics.DrawLine(pen, lineWidth * 0.5F, lineHeight, lineWidth * 1.5F, lineHeight); //e.Graphics.DrawLine(pen, lineWidth, lineHeight * 0.5F, lineWidth, lineHeight * 1.5F); //e.Graphics.DrawString(string.Format("{0:N1}:{1:N1}", lineWidthCm, lineHeightCm), font, brush, lineWidth * 2F, lineHeight * 2f); ////2. top-right conner //e.Graphics.DrawLine(pen, e.PageSettings.PaperSize.Width - lineWidth * 1.5F, lineHeight, e.PageSettings.PaperSize.Width - lineWidth * 0.5F, lineHeight); //e.Graphics.DrawLine(pen, e.PageSettings.PaperSize.Width - lineWidth, lineHeight * 0.5F, e.PageSettings.PaperSize.Width - lineWidth, lineHeight * 1.5F); //e.Graphics.DrawString(string.Format("{0:N1}:{1:N1}", CentimeterToPixelConverter.ConvertToCmX(e.PageSettings.PaperSize.Width - lineWidth), lineHeightCm), font, brush, e.PageSettings.PaperSize.Width - lineWidth * 3F, lineHeight * 2f); ////3. bottom-left conner //e.Graphics.DrawLine(pen, lineWidth * 0.5F, e.PageSettings.PaperSize.Height - lineHeight, lineHeight * 1.5F, e.PageSettings.PaperSize.Height - lineHeight); //e.Graphics.DrawLine(pen, lineWidth, e.PageSettings.PaperSize.Height - lineHeight * 1.5F, lineWidth, e.PageSettings.PaperSize.Height - lineHeight * 0.5F); //e.Graphics.DrawString(string.Format("{0:N1}:{1:N1}", lineWidthCm, CentimeterToPixelConverter.ConvertToCmY(e.PageSettings.PaperSize.Height - lineHeight)), font, brush, lineWidth * 2F, e.PageSettings.PaperSize.Height - lineHeight * 2f); ////4. bottom-right //e.Graphics.DrawLine(pen, e.PageSettings.PaperSize.Width - lineWidth * 1.5F, e.PageSettings.PaperSize.Height - lineHeight, e.PageSettings.PaperSize.Width - lineWidth * 0.5F, e.PageSettings.PaperSize.Height - lineHeight); //e.Graphics.DrawLine(pen, e.PageSettings.PaperSize.Width - lineWidth, e.PageSettings.PaperSize.Height - lineHeight * 1.5F, e.PageSettings.PaperSize.Width - lineWidth, e.PageSettings.PaperSize.Height - lineHeight * 0.5F); //e.Graphics.DrawString(string.Format("{0:N1}:{1:N1}", CentimeterToPixelConverter.ConvertToCmX(e.PageSettings.PaperSize.Width - lineWidth), CentimeterToPixelConverter.ConvertToCmY(e.PageSettings.PaperSize.Height - lineHeight)), font, brush, e.PageSettings.PaperSize.Width - lineWidth * 3F, e.PageSettings.PaperSize.Height - lineHeight * 2f); ////5. Center //e.Graphics.DrawLine(pen, e.PageSettings.PaperSize.Width / 2 - lineWidth / 2, e.PageSettings.PaperSize.Height / 2, e.PageSettings.PaperSize.Width / 2 + lineWidth / 2, e.PageSettings.PaperSize.Height / 2); //e.Graphics.DrawLine(pen, e.PageSettings.PaperSize.Width / 2, e.PageSettings.PaperSize.Height / 2 - lineHeight / 2, e.PageSettings.PaperSize.Width / 2, e.PageSettings.PaperSize.Height / 2 + lineHeight / 2); //e.Graphics.DrawString(string.Format("{0:N1}:{1:N1}", CentimeterToPixelConverter.ConvertToCmX(e.PageSettings.PaperSize.Width / 2), CentimeterToPixelConverter.ConvertToCmY(e.PageSettings.PaperSize.Height / 2)), font, brush, e.PageSettings.PaperSize.Width / 2 + lineWidth, e.PageSettings.PaperSize.Height / 2 + lineHeight); //6. Page size e.Graphics.DrawString(string.Format("Размер страницы {0:N1}х{1:N1} см.", e.PageSettings.PaperSize.Width / 100F * 2.54, e.PageSettings.PaperSize.Height / 100F * 2.54), font, brush, lineWidth * 2F, lineHeight * 5f); e.Graphics.DrawString(string.Format("Размер печатной области {0:N1}х{1:N1} см.", e.PageSettings.PrintableArea.Width / 100F * 2.54, e.PageSettings.PrintableArea.Height / 100F * 2.54), font, brush, lineWidth * 2F, lineHeight * 6f); e.Graphics.DrawString(string.Format("Физический отступ принтера {0:N1}х{1:N1} см.", e.PageSettings.HardMarginX / 100F * 2.54, e.PageSettings.HardMarginY / 100F * 2.54), font, brush, lineWidth * 2F, lineHeight * 8f); //7. Риски по границам //e.Graphics.DrawLine(pen, e.PageSettings.PrintableArea.X, e.PageSettings.PrintableArea.Y, e.PageSettings.PrintableArea.X, e.PageSettings.PrintableArea.Y + lineWidth); //e.Graphics.DrawLine(pen, e.PageSettings.PrintableArea.X, e.PageSettings.PrintableArea.Y, e.PageSettings.PrintableArea.X + lineHeight, e.PageSettings.PrintableArea.Y); //e.Graphics.DrawLine(pen,e.PageSettings.PrintableArea.Right,e.PageSettings.PrintableArea.Bottom,e.PageSettings.PrintableArea.Right, e.PageSettings.PrintableArea.Bottom - lineHeight); //e.Graphics.DrawLine(pen,e.PageSettings.PrintableArea.Right,e.PageSettings.PrintableArea.Bottom,e.PageSettings.PrintableArea.Right - lineWidth, e.PageSettings.PrintableArea.Bottom); }; dialog.ShowDialog(); }