Ejemplo n.º 1
0
        public RectangleMarker(PictureEdit pictureEditForDraw, Rectangle rectangle, bool editable = true)
        {
            mainPictureEdit = pictureEditForDraw;
            viewInfo        = mainPictureEdit.GetViewInfo() as PictureEditViewInfo;

            GetImageCenter();

            defaultZoomPercent = pictureEditForDraw.Properties.ZoomPercent;

            drawingRectangle = new Rectangle(
                rectangle.X,
                rectangle.Y,
                (int)(rectangle.Width * pictureEditForDraw.Properties.ZoomPercent / defaultZoomPercent),
                (int)(rectangle.Height * pictureEditForDraw.Properties.ZoomPercent / defaultZoomPercent));

            insertPoint = mainPictureEdit.ViewportToImage(rectangle.Location);

            defaultRectangle = new RectangleF(
                (float)(insertPoint.X),
                (float)(insertPoint.Y),
                (float)(drawingRectangle.Width),
                (float)(drawingRectangle.Height));

            isMouseClicked = false;
            Editable       = editable;
            InitEvents();
        }
Ejemplo n.º 2
0
        private void AddMarker(MouseEventArgs e)
        {
            PictureEditViewInfo viewInfo = control.GetViewInfo() as PictureEditViewInfo;

            if (!viewInfo.PictureScreenBounds.Contains(e.Location))
            {
                return;
            }
            rectangleMarkers.Add(new RectangleMarker(control, new Rectangle(e.X - 50, e.Y - 50, 100, 100)));
        }
Ejemplo n.º 3
0
        protected double GetActualZoomFactor(PictureEdit Owner)
        {
            PictureEditViewInfo viewInfo = Owner.GetViewInfo() as PictureEditViewInfo;

            if (Owner.Image != null && viewInfo.PictureSourceBounds.Width > 0)
            {
                return(viewInfo.PictureScreenBounds.Width / viewInfo.PictureSourceBounds.Width);
            }
            return(-1);
        }
Ejemplo n.º 4
0
        private void EventPictureEditXrayOnDoubleClick(object sender, MouseEventArgs e)
        {
            PictureEditViewInfo viewInfo = pictureEdit.GetViewInfo() as PictureEditViewInfo;

            if (!viewInfo.PictureScreenBounds.Contains(e.Location))
            {
                return;
            }

            rectangleMarkers.Add(new RectangleMarker(pictureEdit, new Rectangle(e.X, e.Y, 100, 100)));
        }
        private void AddMarker(MouseEventArgs e)
        {
            PictureEditViewInfo viewInfo = pEdit.GetViewInfo() as PictureEditViewInfo;

            if (!viewInfo.PictureScreenBounds.Contains(e.Location))
            {
                return;
            }
            var marker = new RectangleMarker(pEdit, new Rectangle(e.X - 50, e.Y, 100, 100));

            rectangleMarkers.Add(marker);
        }
Ejemplo n.º 6
0
        public void Dispose()
        {
            if (Editable)
            {
                mainPictureEdit.MouseDown -= new MouseEventHandler(mPictureEdit_MouseDown);
                mainPictureEdit.MouseUp   -= new MouseEventHandler(mPictureEdit_MouseUp);
                mainPictureEdit.MouseMove -= new MouseEventHandler(mPictureEdit_MouseMove);
            }
            mainPictureEdit.PaintEx -= MainPictureEdit_PaintEx;

            mainPictureEdit = null;
            viewInfo        = null;
        }
Ejemplo n.º 7
0
        public void Dispose()
        {
            if (Editable)
            {
                mainPictureEdit.MouseDown -= new MouseEventHandler(mPictureEdit_MouseDown);
                mainPictureEdit.MouseUp   -= new MouseEventHandler(mPictureEdit_MouseUp);
                mainPictureEdit.MouseMove -= new MouseEventHandler(mPictureEdit_MouseMove);
            }
            // mainPictureEdit.Paint -= new PaintEventHandler(mPictureEdit_Paint);
            //mainPictureEdit.ZoomPercentChanged -= ZoomPercentChanged;

            mainPictureEdit.PaintEx -= MainPictureEdit_PaintEx;

            mainPictureEdit = null;
            viewInfo        = null;
        }
Ejemplo n.º 8
0
        protected override void DrawImage(ControlGraphicsInfoArgs info)
        {
            base.DrawImage(info);
            PictureEditViewInfo viewInfo = info.ViewInfo as PictureEditViewInfo;

            if (viewInfo.OwnerEdit != null)
            {
                CustomPictureEdit edit = viewInfo.OwnerEdit as CustomPictureEdit;
                if (edit.NestedFigures.Count > 0)
                {
                    foreach (Figure figure in edit.NestedFigures)
                    {
                        if (!figure.Active && !figure.Selected)
                        {
                            continue;
                        }
                        Rectangle rect = edit.FigureRectToEditorRect(figure);
                        info.Cache.FillRectangle(figure.Selected ? edit.Properties.HighlightFigureColor : edit.Properties.ActiveFigureColor, rect);
                    }
                }
            }
        }
Ejemplo n.º 9
0
        private Point ConvertPoint(PictureEdit edit, Point p)
        {
            Point result = Point.Empty;

            if (edit.Image != null)
            {
                PictureEditViewInfo vi = edit.GetViewInfo() as PictureEditViewInfo;
                double zoomX = 1.0, zoomY = 1.0;

                if (ZoomPercentChanged && edit.Properties.SizeMode != PictureSizeMode.Squeeze)
                {
                    zoomX = zoomY = Convert.ToDouble(edit.Properties.ZoomPercent) / 100;
                }
                else
                {
                    switch (edit.Properties.SizeMode)
                    {
                    case PictureSizeMode.Zoom:
                    case PictureSizeMode.Squeeze:
                        zoomX = zoomY = Convert.ToDouble(vi.PictureScreenBounds.Width / edit.Image.Size.Width);
                        break;

                    case PictureSizeMode.Stretch:
                        zoomX = Convert.ToDouble(vi.PictureScreenBounds.Width / edit.Image.Size.Width);
                        zoomY = Convert.ToDouble(vi.PictureScreenBounds.Height / edit.Image.Size.Height);
                        break;

                    case PictureSizeMode.StretchHorizontal:
                        zoomX = Convert.ToDouble(vi.PictureScreenBounds.Width / edit.Image.Size.Width);
                        break;

                    case PictureSizeMode.StretchVertical:
                        zoomY = zoomY = Convert.ToDouble(vi.PictureScreenBounds.Height / edit.Image.Size.Height);
                        break;
                    }
                }

                int scrollX = (edit.Controls[1] as DevExpress.XtraEditors.HScrollBar).Value;
                int scrollY = (edit.Controls[0] as DevExpress.XtraEditors.VScrollBar).Value;

                int x, y;
                if (edit.Controls[1].Visible == true)
                {
                    x = (int)((p.X + scrollX - vi.PictureScreenBounds.X) / zoomX);
                }
                else
                {
                    x = (int)((p.X - vi.PictureScreenBounds.X) / zoomX);
                }
                if (edit.Controls[0].Visible == true)
                {
                    y = (int)((p.Y + scrollY - vi.PictureScreenBounds.Y) / zoomY);
                }
                else
                {
                    y = (int)((p.Y - vi.PictureScreenBounds.Y) / zoomY);
                }
                result = new Point(x, y);
            }
            return(result);
        }