private void AddCropToElement(FrameworkElement element) { if (_frameworkElement != null) { RemoveCropFromCur(); } Rect rect; if (_isRectSizeSet) { rect = new Rect( _rectX, _rectY, _rectWidth, _rectHeight); } else { rect = AutoFit(element); } var layer = AdornerLayer.GetAdornerLayer(element); _croppingAdorner = new CroppingAdorner(element, rect); _croppingAdorner.SlideWidth = this.GetCurrentPresentation().SlideWidth; _croppingAdorner.SlideHeight = this.GetCurrentPresentation().SlideHeight; _croppingAdorner.CropChanged += (sender, args) => { var croppingRect = _croppingAdorner.ClippingRectangle; if (croppingRect.Width*croppingRect.Height < 1) { SaveCropButton.IsEnabled = false; } else { SaveCropButton.IsEnabled = true; } }; Rect = rect; layer.Add(_croppingAdorner); _frameworkElement = element; SetClipColorGrey(); }