Exemple #1
0
            protected override void StartDragCore(Point position)
            {
                _fromPt  = position;
                _adorner = new SelectAdorner(Target)
                {
                    Rectangle = new Rect(position, position)
                };
                AdornerLayer layer = AdornerLayer.GetAdornerLayer(Target);

                layer.Add(_adorner);
            }
Exemple #2
0
        private void CanvasMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (inkCanvas.EditingMode == InkCanvasEditingMode.Select && inkCanvas.GetSelectedStrokes().Count > 0)
            {
                Rect rect = inkCanvas.GetSelectionBounds();  //bound of strokes
                rect.Inflate(14, 14);                        //bound of resize thumb
                if (!rect.Contains(e.GetPosition(inkCanvas)))
                {
                    inkCanvas.EditingMode = InkCanvasEditingMode.None;
                }
                else
                {
                    return;
                }
            }

            if (curColorPickerMode == ColorPickerModeEnum.True)
            {
                curColorPickerMode = ColorPickerModeEnum.False;

                Mouse.OverrideCursor = Cursors.Arrow;
                POINT p;
                GetCursorPos(out p);
                IntPtr hdc = GetDC(IntPtr.Zero);
                int    c   = GetPixel(hdc, p.X, p.Y);
                byte   r   = (byte)(c & 0xFF);
                byte   g   = (byte)((c & 0xFF00) >> 8);
                byte   b   = (byte)((c & 0xFF0000) >> 16);
                // set color
            }

            switch (curOperationMode)
            {
            case ModeEnum.Draw:
                if (curDraw != null)
                {
                    curDraw.OnMouseDown(inkCanvas, e);
                }
                break;

            case ModeEnum.Select:
                var          selectionStartPoint = new Point?(e.GetPosition(inkCanvas));
                AdornerLayer adornerLayer        = AdornerLayer.GetAdornerLayer(inkCanvas);
                if (adornerLayer != null)
                {
                    SelectAdorner adorner = new SelectAdorner(inkCanvas, selectionStartPoint);
                    if (adorner != null)
                    {
                        adornerLayer.Add(adorner);
                    }
                }
                break;
            }
        }
Exemple #3
0
        private void DrawSelect_MouseUp()
        {
            if (SelectRectangle != null && currentSelectedImage == null)
            {
                if (SelectRectangle.Height < 2 || SelectRectangle.Width < 2)
                {
                    paintCanvas.Children.Remove(SelectRectangle);
                    SelectRectangle = null;
                }
                else
                {
                    paintCanvas.Children.Remove(SelectRectangle);
                    currentSelectedImage = CanvasUltilities.Crop(paintCanvas, Canvas.GetLeft(SelectRectangle), Canvas.GetTop(SelectRectangle), SelectRectangle.Width, SelectRectangle.Height);

                    //Add replace rectangle to Hide view behind cropped region
                    Rectangle replace = new Rectangle()
                    {
                        Width           = SelectRectangle.Width,
                        Height          = SelectRectangle.Height,
                        Stroke          = Brushes.Transparent,
                        StrokeThickness = 0,
                        Fill            = Brushes.White
                    };
                    Canvas.SetLeft(replace, Canvas.GetLeft(SelectRectangle));
                    Canvas.SetTop(replace, Canvas.GetTop(SelectRectangle));
                    paintCanvas.Children.Add(replace);


                    currentSelectedImage.Stretch          = Stretch.Fill;
                    currentSelectedImage.StretchDirection = StretchDirection.Both;
                    Canvas.SetLeft(currentSelectedImage, Canvas.GetLeft(SelectRectangle));
                    Canvas.SetTop(currentSelectedImage, Canvas.GetTop(SelectRectangle));
                    currentSelectedImage.Width  = currentSelectedImage.Source.Width;
                    currentSelectedImage.Height = currentSelectedImage.Source.Height;

                    paintCanvas.Children.Add(currentSelectedImage);
                    Adorner image_adorner = new SelectAdorner(currentSelectedImage);
                    adlayer.Add(image_adorner);
                }
            }
        }