/// <summary> /// sets the inital angle if datacontext is a ContentControl and if the Canvas was found. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void RotateThumb_DragStarted(object sender, VectorEventArgs e) { _designerItem = DataContext as ContentControl; if (_designerItem != null) { _canvas = TreeExtensions.TryFindParent <Canvas>(_designerItem); if (_canvas != null) { _centerPoint = (Point)_designerItem.TranslatePoint( new Point(_designerItem.Width * _designerItem.RenderTransformOrigin.Point.X, _designerItem.Height * _designerItem.RenderTransformOrigin.Point.Y), _canvas); Point startPoint = VisualExtensions. PointToClient(_canvas, new PixelPoint((int)e.Vector.X, (int)e.Vector.Y)); _startVector = startPoint - _centerPoint; _rotateTransform = _designerItem.RenderTransform as RotateTransform; if (_rotateTransform == null) { _designerItem.RenderTransform = new RotateTransform(0); _initialAngle = 0; } else { _initialAngle = _rotateTransform.Angle; } } } }
/// <summary> /// sets the Angle tot he rotate transform if not null /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ResizeThumb_DragStarted(object sender, VectorEventArgs e) { _designerItem = DataContext as ContentControl; if (_designerItem != null) { _canvas = TreeExtensions.TryFindParent <Canvas>(_designerItem); if (_canvas != null) { _transformOrigin = _designerItem.RenderTransformOrigin; _rotateTransform = _designerItem.RenderTransform as RotateTransform; if (_rotateTransform != null) { _angle = _rotateTransform.Angle * Math.PI / 180.0; } else { _angle = 0.0d; } } } }