private void RotateThumb_DragStarted(object sender, DragStartedEventArgs e) { _designerItem = DataContext as ContentControl; if (_designerItem != null) { _canvas = _designerItem.FindParentControl<Canvas>(); var annoyingRectangle = _designerItem.DataContext as AnnoyingRectangle; if (_canvas != null) { _centerPoint = _designerItem.TranslatePoint( new Point((double)annoyingRectangle.Width * _designerItem.RenderTransformOrigin.X, (double)annoyingRectangle.Height * _designerItem.RenderTransformOrigin.Y), _canvas); Point startPoint = Mouse.GetPosition(_canvas); _startVector = Point.Subtract(startPoint, _centerPoint); _offset = annoyingRectangle.Angle; AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this._canvas); if (adornerLayer != null) { adorner = new RotateAdorner(this._designerItem); adornerLayer.Add(this.adorner); } } } }