private void WindowMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            _isDragging       = false;
            _end              = e.GetPosition(Grid);
            Border.Visibility = Visibility.Collapsed;

            var layer = AdornerLayer.GetAdornerLayer(Grid);

            var rect = GetRegion();

            UpdateSizeDisplay(rect);

            if (rect == null)
            {
                return;
            }

            _croppingAdorner = new CroppingAdorner(Grid, rect.Value);

            var clr = Colors.Black;

            clr.A = 110;
            _croppingAdorner.Fill = new SolidColorBrush(clr);

            layer.Add(_croppingAdorner);

            _croppingAdorner.CropChanged += (o, args) => UpdateSizeDisplay(_croppingAdorner.SelectedRegion);

            _croppingAdorner.Checked += () =>
            {
                var r = _croppingAdorner.SelectedRegion;

                _start = r.Location;
                _end   = r.BottomRight;

                Close();
            };
        }
Example #2
0
        private void AddCropToElement(FrameworkElement fel)
        {
            if (_felCur != null)
            {
                RemoveCropFromCur();
            }
            Rect rcInterior = new Rect(
                fel.ActualWidth * 0.2,
                fel.ActualHeight * 0.2,
                fel.ActualWidth * 0.6,
                fel.ActualHeight * 0.6);
            AdornerLayer aly = AdornerLayer.GetAdornerLayer(fel);

            _clp = new CroppingAdorner(fel, rcInterior);
            aly.Add(_clp);
            imgCrop.Source    = _clp.BpsCrop();
            _clp.CropChanged += CropChanged;
            _felCur           = fel;
            if (rbRed.IsChecked != true)
            {
                SetClipColorGrey();
            }
        }