public override bool OnPointerMove(AnnContainer sender, AnnPointerEventArgs e) { bool handled = false; if (TargetObject != null && HasStarted) { LeadPointD pt = ClipPoint(e.Location, ClipRectangle); if (!LeadPoint.Equals(pt, _end)) { _end = pt; LeadPointCollection points = TargetObject.Points; if (points.Count > 1) { if (_clickCount % 2 != 0) { points[points.Count - 1] = pt; // end point } } AnnIntersectionPointObject intersectionPointObject = TargetObject as AnnIntersectionPointObject; if (intersectionPointObject != null) { intersectionPointObject.IntersectionInsideContainer = ClipRectangle.ContainsPoint(intersectionPointObject.IntersectionPoint); } Working(); } handled = true; } return(handled); }
void _viewer_PostRender(object sender, ImageViewerRenderEventArgs args) { PaintEventArgs e = args.PaintEventArgs; if (command != null) { if (_drawing) { double xFactor = _viewer.XScaleFactor; double yFactor = _viewer.YScaleFactor; float xOffset = -_viewer.DisplayRectangle.Left; float yOffset = -_viewer.DisplayRectangle.Top; LeadPoint center = new LeadPoint((int)((_center.X + xOffset) * xFactor + 0.5), (int)((_center.Y + yOffset) * yFactor + 0.5)); LeadPoint current = new LeadPoint((int)((_curntMousePoint.X + xOffset) * xFactor + 0.5), (int)((_curntMousePoint.Y + yOffset) * yFactor + 0.5)); int Radius = Length(center, current); e.Graphics.FillEllipse(Brushes.Red, RectFromCenterRadius(center, 2)); e.Graphics.IntersectClip(_viewer.ClientRectangle); if (!_isCircle) { e.Graphics.DrawRectangle(Pens.Yellow, RectFromCenterRadius(center, Radius)); } else { e.Graphics.DrawEllipse(Pens.Yellow, RectFromCenterRadius(center, Radius)); } } } }
void _viewer_MouseDown(object sender, MouseEventArgs e) { if (command != null && e.Button == MouseButtons.Left) { if (_viewer.ViewBounds.Contains(LeadPoint.Create(e.X, e.Y))) { double xFactor = _viewer.XScaleFactor; double yFactor = _viewer.YScaleFactor; int xOffset = _viewer.ViewBounds.Left; int yOffset = _viewer.ViewBounds.Top; LeadPoint pnt = new LeadPoint((int)((e.X - xOffset) * 1.0 / xFactor + 0.5), (int)((e.Y - yOffset) * 1.0 / yFactor + 0.5)); _drawing = true; _mousedown = true; _center = pnt; _curntMousePoint = _center; _viewer.Invalidate(); if (_viewer.WorkingInteractiveMode is ImageViewerFloaterInteractiveMode) { _mainForm.DisableAllInteractiveModes(_viewer); _form.Viewer.InteractiveModes.BeginUpdate(); _form.NoneInteractiveMode.IsEnabled = true; _form.Viewer.InteractiveModes.EndUpdate(); try { if (_viewer.Floater != null) { RasterRegionXForm xForm = new RasterRegionXForm(); xForm.ViewPerspective = RasterViewPerspective.TopLeft; /*LeadMatrix mm = _viewer.FloaterTransform.OffsetY; * Matrix m = new Matrix((float)mm.M11, (float)mm.M12, (float)mm.M21, (float)mm.M22, (float)mm.OffsetX, (float)mm.OffsetY); * Transformer t = new Transformer(m);*/ LeadMatrix floaterTransform = _viewer.FloaterTransform; xForm.XOffset = (int)floaterTransform.OffsetX; xForm.YOffset = (int)floaterTransform.OffsetY; xForm.YScalarDenominator = xForm.XScalarDenominator = xForm.XScalarNumerator = xForm.YScalarNumerator = 1; _viewer.Image.SetRegion(xForm, _viewer.Floater.GetRegion(null), RasterRegionCombineMode.Set); _viewer.Floater.Dispose(); _viewer.Floater = null; } } catch (Exception ex) { Messager.ShowError(this, ex); } } } } }
private void _rasterImageViewer_MouseMove(object sender, MouseEventArgs e) { string str = String.Empty; RasterImage image = _rasterImageViewer.Image; if (image != null) { LeadPoint pixels = PhysicalToLogical(new LeadPoint(e.X, e.Y)); if (pixels.X >= 0 && pixels.X <= image.ImageWidth && pixels.Y >= 0 && pixels.Y <= image.ImageHeight) { str = string.Format("{0},{1} px", (int)pixels.X, (int)pixels.Y); } if (InteractiveMode == ViewerControlInteractiveMode.SelectMode) { int index = HitTestBarcode(pixels); if (index != -1) { _rasterImageViewer.Cursor = Cursors.Cross; } else if (MainForm.InversePerspectiveActive == false) { _rasterImageViewer.Cursor = Cursors.Default; } } } _mousePositionLabel.Text = str; }
void _viewer_MouseMove(object sender, MouseEventArgs e) { double xFactor = 1; double yFactor = 1; int xOffset = 0; int yOffset = 0; LeadPoint pixels = _form.PhysicalToLogical(new LeadPoint(e.X, e.Y)); Point pnt = new Point((int)((pixels.X - xOffset) * 1.0 / xFactor + 0.5), (int)((pixels.Y - yOffset) * 1.0 / yFactor + 0.5)); if (_viewer.ImageBounds.Contains(pixels.X, pixels.Y)) { _viewer.Cursor = Cursors.Cross; if (_firstPointSelected) { _currentMousePoint = pnt; } if (_movingPntIdx != -1) { _polyPoints.RemoveAt(_movingPntIdx); _polyPoints.Insert(_movingPntIdx, pnt); UpdateDialogPoints(_movingPntIdx, pnt); } _viewer.Invalidate(); } _txtCursorX.Text = pnt.X.ToString(); _txtCursorY.Text = pnt.Y.ToString(); }
private void _rasterImageViewer_MouseMove(object sender, MouseEventArgs e) { string str; if (_rasterImageViewer.Image != null && _ocrPage != null) { // Show the mouse position in physical and logical (inches) coordinates PointF physical = new PointF(e.X, e.Y); PointF pixels; Transformer trans = new Transformer(ToMatrix(_rasterImageViewer.ImageTransform)); pixels = trans.PointToLogical(physical); LeadPoint lPoint = new LeadPoint((int)Math.Abs(pixels.X), (int)Math.Abs(pixels.Y)); int zoneIndex = _ocrPage.HitTestZone(lPoint); str = string.Format("{0},{1} px", (int)pixels.X, (int)pixels.Y); } else { str = string.Empty; } _mousePositionLabel.Text = str; }
private void ApplyWatershed() { if (_points.Count > 0) { LeadPoint point = _viewer.ScrollOffset; _viewer.Image = _orgImage.Clone(); _viewer.ScrollBy(point); WatershedCommand command = new WatershedCommand(); LeadPoint[][] points = new LeadPoint[_points.Count][]; double xFactor = _viewer.XScaleFactor; double yFactor = _viewer.YScaleFactor; int xOffset = _viewer.ViewBounds.Left; int yOffset = _viewer.ViewBounds.Top; for (int idx = 0; idx < points.Length; idx++) { points[idx] = new LeadPoint[_points.ToArray()[idx].ToArray().Length]; for (int idx2 = 0; idx2 < points[idx].Length; idx2++) { points[idx][idx2].X = (int)((_points.ToArray()[idx].ToArray()[idx2].X - xOffset) * 1.0 / xFactor + 0.5); points[idx][idx2].Y = (int)((_points.ToArray()[idx].ToArray()[idx2].Y - yOffset) * 1.0 / yFactor + 0.5); } } command.PointsArray = points; command.Run(_viewer.Image); _viewer.Invalidate(); } }
private LeadPoint[] PointsFromCorners(LeadPoint topLeft, LeadPoint bottomRight) { // Set the points from a 2 corner points var x1 = topLeft.X; var y1 = topLeft.Y; var x2 = bottomRight.X; var y2 = bottomRight.Y; var width = x2 - x1; var height = y2 - y1; var halfWidth = width / 2; var halfHeight = height / 2; return(new LeadPoint[] { new LeadPoint(x1, y1), new LeadPoint(x1 + halfWidth, y1), new LeadPoint(x2, y1), new LeadPoint(x2, y1 + halfHeight), new LeadPoint(x2, y2), new LeadPoint(x1 + halfWidth, y2), new LeadPoint(x1, y2), new LeadPoint(x1, y1 + halfHeight) }); }
private LeadPoint[] PointsFromRectangle(LeadRect rect) { var topLeft = new LeadPoint(rect.Left, rect.Top); var bottomRight = new LeadPoint(rect.Right, rect.Bottom); return(PointsFromCorners(topLeft, bottomRight)); }
int Length(LeadPoint center, LeadPoint current) { int xDiff = center.X - current.X; int yDiff = center.Y - current.Y; return((int)(Math.Sqrt((double)(xDiff * xDiff + yDiff * yDiff)) + 0.5)); }
private void AddMagicWand(LeadPoint MagicWandPoint) { ImageViewer imageViewer = this.ImageViewer; LeadMatrix MyMatrix = imageViewer.ImageTransform; Transformer t = new Transformer(new System.Drawing.Drawing2D.Matrix((float)MyMatrix.M11, (float)MyMatrix.M12, (float)MyMatrix.M21, (float)MyMatrix.M22, (float)MyMatrix.OffsetX, (float)MyMatrix.OffsetY)); LeadPoint pt = MagicWandPoint; pt = imageViewer.Image.PointToImage(RasterViewPerspective.TopLeft, pt); PointF ptF = t.PointToLogical(new PointF(pt.X, pt.Y)); RasterColor lowerColor = new RasterColor(Threshold, Threshold, Threshold); RasterColor upperColor = new RasterColor(Threshold, Threshold, Threshold); if (((int)ptF.X > imageViewer.Image.Width) || ((int)ptF.Y > imageViewer.Image.Height)) { return; } else { if (((int)ptF.X > 0) && ((int)ptF.Y > 0)) { imageViewer.Image.AddMagicWandToRegion((int)ptF.X, (int)ptF.Y, lowerColor, upperColor, RasterRegionCombineMode.Set); imageViewer.ActiveItem.ImageRegionToFloater(); imageViewer.Image.SetRegion(null, null, RasterRegionCombineMode.Set); } } }
void _viewer_MouseUp(object sender, MouseEventArgs e) { Cursor.Clip = Rectangle.Empty; if (e.Button == MouseButtons.Left) { LeadPoint tmpPnt = _viewer.ConvertPoint(null, ImageViewerCoordinateType.Control, ImageViewerCoordinateType.Image, LeadPoint.Create(e.X, e.Y)); _pressed = false; switch (_button) { case downButtonPosition.END_RECT: case downButtonPosition.NONE: _xEnd = tmpPnt.X; _yEnd = tmpPnt.Y; _numXEnd.Text = _xEnd.ToString(); _numYEnd.Text = _yEnd.ToString(); break; case downButtonPosition.START_RECT: _xStart = tmpPnt.X; _yStart = tmpPnt.Y; _numXStart.Text = _xStart.ToString(); _numYStart.Text = _yStart.ToString(); break; } if (_cbMovable.Checked) { _startRect = new Rectangle(_ptStart.X - 10, _ptStart.Y - 10, 20, 20); _endRect = new Rectangle(_ptEnd.X - 10, _ptEnd.Y - 10, 20, 20); } } }
void _viewer_PostRender(object sender, ImageViewerRenderEventArgs args) { LeadPoint firstPoint = _viewer.ConvertPoint(null, ImageViewerCoordinateType.Image, ImageViewerCoordinateType.Control, LeadPoint.Create(_xStart, _yStart)); LeadPoint endPoint = _viewer.ConvertPoint(null, ImageViewerCoordinateType.Image, ImageViewerCoordinateType.Control, LeadPoint.Create(_xEnd, _yEnd)); float[] dashValuesWhite = { 4, 4, 4, 4 }; Pen penBlack = new Pen(Color.Black, 1); Pen penWhite = new Pen(Color.White, 1); PaintEventArgs e = args.PaintEventArgs; penWhite.DashPattern = dashValuesWhite; e.Graphics.DrawLine(penBlack, firstPoint.X, firstPoint.Y, endPoint.X, endPoint.Y); e.Graphics.DrawLine(penWhite, firstPoint.X, firstPoint.Y, endPoint.X, endPoint.Y); LeadRect startRect = _viewer.ConvertRect(null, ImageViewerCoordinateType.Image, ImageViewerCoordinateType.Control, LeadRect.Create(_startRect.X, _startRect.Y, _startRect.Width, _startRect.Height)); LeadRect endRect = _viewer.ConvertRect(null, ImageViewerCoordinateType.Image, ImageViewerCoordinateType.Control, LeadRect.Create(_endRect.X, _endRect.Y, _endRect.Width, _endRect.Height)); if (_cbMovable.Checked) { e.Graphics.DrawRectangle(penBlack, startRect.X, startRect.Y, startRect.Width, startRect.Height); e.Graphics.DrawRectangle(penWhite, startRect.X, startRect.Y, startRect.Width, startRect.Height); e.Graphics.DrawRectangle(penBlack, endRect.X, endRect.Y, endRect.Width, endRect.Height); e.Graphics.DrawRectangle(penWhite, endRect.X, endRect.Y, endRect.Width, endRect.Height); } }
private int DistanceBetweenPoints(LeadPoint point1, LeadPoint point2) { int dx = point2.X - point1.X; int dy = point2.Y - point1.Y; return((int)Math.Sqrt((dx * dx) + (dy * dy))); }
PDFObject HitTestPDFImageObject(LeadPoint pt) { PDFObject retObject = new PDFObject(); PDFDocumentPage page = _document.Pages[_currentPageNumber - 1]; if (page.Objects != null && page.Objects.Count > 0) { foreach (PDFObject obj in page.Objects) { if (obj.ObjectType == PDFObjectType.Image) { PDFRect tempPDFRect = page.ConvertRect(PDFCoordinateType.Pdf, PDFCoordinateType.Pixel, obj.Bounds); LeadRect objectRect = ToLeadRect(tempPDFRect); if (objectRect.Contains(pt)) { // Point in rect then user pressed over image object, so return it. retObject = obj; break; } } } } return(retObject); }
private void service_Move(object sender, InteractiveEventArgs e) { if (this.ImageViewer.Items.Count < 1) { return; } var item = this.ImageViewer.Items[0]; if (item == null) { return; } e.IsHandled = true; this.OnWorkStarted(EventArgs.Empty); if (!item.HasFloater) { TryAddFloater(item); } else { LeadMatrix matrix = new LeadMatrix(); LeadPoint positionImage = ImageViewer.ConvertPoint(ImageViewer.Items[0], ImageViewerCoordinateType.Control, ImageViewerCoordinateType.Image, LeadPoint.Create(e.Position.X, e.Position.Y)); matrix.OffsetX = positionImage.X - item.Floater.Width / 2; matrix.OffsetY = positionImage.Y - item.Floater.Height / 2; item.FloaterTransform = matrix; } this.OnWorkCompleted(EventArgs.Empty); }
private void UpdateControlPoints() { for (var i = 0; i < _imagePoints.Length; i++) { _controlPoints[i] = new LeadPoint(_imagePoints[i].X, _imagePoints[i].Y); } ImageViewer.ConvertPoints(null, ImageViewerCoordinateType.Image, ImageViewerCoordinateType.Item, _controlPoints); }
void _viewer_MouseDown(object sender, MouseEventArgs e) { LeadPoint pixels = _form.PhysicalToLogical(new LeadPoint(e.X, e.Y)); LeadRect imageBounds = new LeadRect(0, 0, _viewer.Image.ImageWidth, _viewer.Image.ImageHeight); if (imageBounds.Contains(pixels)) { if (e.Button == MouseButtons.Left) { double xFactor = 1; double yFactor = 1; int xOffset = 0; int yOffset = 0; Point pnt = new Point((int)Math.Ceiling(((pixels.X - xOffset) * 1.0 / xFactor + 0.5)), (int)Math.Ceiling(((pixels.Y - yOffset) * 1.0 / yFactor + 0.5))); _movingPntIdx = -1; if (!_drawing) { Rectangle[] hyberAreas = new Rectangle[_polyPoints.Count]; for (int idx = 0; idx < hyberAreas.Length; idx++) { hyberAreas[idx] = CreateRectFromPoint(_polyPoints[idx], 15); if (hyberAreas[idx].Contains(pnt)) { _movingPntIdx = idx; break; } } } if (_movingPntIdx == -1) { if (_polyPoints.Count < 4) { if (pnt.Equals(_lastPoint)) { return; } _firstPointSelected = true; _polyPoints.Add(pnt); _currentMousePoint = pnt; UpdateDialogPoints(_polyPoints.Count - 1, pnt); _lastPoint = pnt; } if (_polyPoints.Count == 4) { _drawing = false; _viewer.Invalidate(); _btnApply.Enabled = true; } } } } }
private void _btnCancel_Click(object sender, EventArgs e) { LeadPoint point = _viewer.ScrollOffset; _viewer.Image = _orgImage.Clone(); _viewer.ScrollBy(point); _orgImage.Dispose(); this.Close(); }
public void ResetThumbs(LeadPoint[] thumbs) { _topLeft = thumbs[0]; _topRight = thumbs[1]; _bottomRight = thumbs[2]; _bottomLeft = thumbs[3]; UpdateControlPoints(); }
private void _btnReset_Click(object sender, EventArgs e) { _points.Clear(); _currentSegment.Clear(); LeadPoint point = _viewer.ScrollOffset; _viewer.Image = _orgImage.Clone(); _viewer.ScrollBy(point); _viewer.Invalidate(); }
private void _thumbnailsContextMenuStrip_Opening(object sender, CancelEventArgs e) { // Get current page from the position if (!_documentViewer.HasDocument) { e.Cancel = true; return; } var thumbnails = _documentViewer.Thumbnails; if (thumbnails == null) { e.Cancel = true; return; } var pageNumber = -1; var imageViewer = thumbnails.ImageViewer; var position = imageViewer.PointToClient(Cursor.Position); var item = imageViewer.HitTestItem(LeadPoint.Create(position.X, position.Y)); var canRunText = false; if (item != null) { pageNumber = imageViewer.Items.IndexOf(item) + 1; canRunText = _documentViewer.Commands.CanRun(DocumentViewerCommands.TextGet, pageNumber); } if (pageNumber != -1) { _thumbnailsGetThisPageTextToolStripMenuItem.Tag = canRunText ? (object)pageNumber : null; _thumbnailsGetThisPageTextToolStripMenuItem.Enabled = canRunText; _thumbnailsRotateClockwiseToolStripMenuItem.Tag = pageNumber; _thumbnailsRotateClockwiseToolStripMenuItem.Enabled = true; _thumbnailsRotateCounterClockwiseToolStripMenuItem.Tag = pageNumber; _thumbnailsRotateCounterClockwiseToolStripMenuItem.Enabled = true; _thumbnailsEnableDisablePageToolStripMenuItem.Tag = pageNumber; _thumbnailsEnableDisablePageToolStripMenuItem.Enabled = true; _thumbnailsEnableDisablePageToolStripMenuItem.Checked = _documentViewer.Document.Pages[pageNumber - 1].IsDeleted; } else { _thumbnailsGetThisPageTextToolStripMenuItem.Tag = null; _thumbnailsGetThisPageTextToolStripMenuItem.Enabled = false; _thumbnailsRotateClockwiseToolStripMenuItem.Tag = null; _thumbnailsRotateClockwiseToolStripMenuItem.Enabled = true; _thumbnailsRotateCounterClockwiseToolStripMenuItem.Tag = null; _thumbnailsRotateCounterClockwiseToolStripMenuItem.Enabled = true; _thumbnailsEnableDisablePageToolStripMenuItem.Tag = null; _thumbnailsEnableDisablePageToolStripMenuItem.Enabled = false; } _thumbnailsGetAllPagesTextToolStripMenuItem.Enabled = _documentViewer.Commands.CanRun(DocumentViewerCommands.TextGet, 0); }
void _viewer_MouseMove(object sender, MouseEventArgs e) { if (_viewer.ViewBounds.Contains(LeadPoint.Create(e.X, e.Y))) { if (_drawing) { _currentSegment.Add(new Point(e.X, e.Y)); _viewer.Invalidate(); } } }
private IntPtr _redWin32Pen = CreatePen(0, 2, (uint)0x80000FF); //red win32 pen // Translate Point From Control to RasterImage private Point TranslatePoint(ImageViewer viewer, RasterImage image, Point point) { if (image != null && viewer != null) { LeadPoint leadPoint = new LeadPoint(point.X, point.Y); leadPoint = viewer.ConvertPoint(viewer.Items[0], ImageViewerCoordinateType.Control, ImageViewerCoordinateType.Image, leadPoint); point.X = leadPoint.X; point.Y = leadPoint.Y; } return(point); }
void _viewer_PanBegin(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { _viewer.Identity(); } else { _currentPoint = new LeadPoint(e.X, e.Y); } }
public LeadPoint PointToPixels(LeadPoint value) { if (value.IsEmpty) { return(LeadPoint.Empty); } var resolution = this.Pages.DefaultResolution; return(LeadPoint.Create(DocumentToPixels(resolution, value.X), DocumentToPixels(resolution, value.Y))); }
public ViewContextMenu(DocumentViewer documentViewer, Action selectAllTextAction) { _commandsBinder = new CommandsBinder(documentViewer); _commandsBinder.Items.Add(new CommandBinderItem { CommandNames = new string[] { DocumentViewerCommands.TextCopy, DocumentViewerCommands.AnnotationsCopy }, ToolStripItem = this.Items.Add("Copy") }); _commandsBinder.Items.Add(new CommandBinderItem { CommandName = DocumentViewerCommands.AnnotationsPaste, ToolStripItem = this.Items.Add("Paste"), GetValue = (() => { // The paste position, in viewer coordinates var position = documentViewer.View.ImageViewer.PointToClient(_openingPosition); return(LeadPoint.Create(position.X, position.Y)); }) }); _commandsBinder.Items.Add(new CommandBinderItem { CommandName = DocumentViewerCommands.AnnotationsDelete, ToolStripItem = this.Items.Add("Delete") }); this.Items.Add(new ToolStripSeparator()); _commandsBinder.Items.Add(new CommandBinderItem { CommandName = DocumentViewerCommands.TextSelectAll, ToolStripItem = this.Items.Add("Select all", null, new EventHandler(delegate { selectAllTextAction(); })), AutoRun = false }); _commandsBinder.Items.Add(new CommandBinderItem { CommandName = DocumentViewerCommands.AnnotationsSelectAll, ToolStripItem = this.Items.Add("Select all annotations") }); _commandsBinder.Items.Add(new CommandBinderItem { CommandNames = new string[] { DocumentViewerCommands.TextClearSelection, DocumentViewerCommands.AnnotationsClearSelection }, ToolStripItem = this.Items.Add("Clear selection") }); _commandsBinder.BindActions(true); _commandsBinder.Run(); }
void _viewer_MouseUp(object sender, MouseEventArgs e) { LeadPoint pixels = _form.PhysicalToLogical(new LeadPoint(e.X, e.Y)); if (_viewer.ImageBounds.Contains(pixels.X, pixels.Y)) { if (e.Button == MouseButtons.Left) { _movingPntIdx = -1; } } }
void _viewer_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { _drawing = true; _segIndex++; LeadPoint point = _viewer.ScrollOffset; _viewer.Image = _orgImage.Clone(); _viewer.ScrollBy(point); _viewer.Invalidate(); } }
private void _rasterImageViewer_MouseMove(object sender, MouseEventArgs e) { string str; if (_rasterImageViewer.Image != null) { // Show the mouse position in physical and logical (inches) coordinates PointF physical = new PointF(e.X, e.Y); PointF pixels; Transformer trans = new Transformer(ToMatrix(_rasterImageViewer.ImageTransform)); pixels = trans.PointToLogical(physical); LeadPoint lPoint = new LeadPoint((int)pixels.X, (int)pixels.Y); int zoneIndex = _ocrPage.HitTestZone(lPoint); if (zoneIndex != -1) { if (_ocrPage.Zones[zoneIndex].ZoneType == OcrZoneType.Table && _ocrPage.TableZoneManager != null) { try { OcrTablePointInformation tablePointInfo = _ocrPage.TableZoneManager.GetPointInformation(zoneIndex, lPoint, new LeadSize(2, 2)); int cellIndex = tablePointInfo.CellIndex + 1; _cellIndexLabel.Text = "Cell Index: " + cellIndex.ToString(); } catch (System.Exception /*e*/) { _cellIndexLabel.Text = string.Empty; } } else { _cellIndexLabel.Text = string.Empty; } } else { _cellIndexLabel.Text = string.Empty; } str = string.Format("{0},{1} px", (int)pixels.X, (int)pixels.Y); } else { str = string.Empty; } _mousePositionLabel.Text = str; }