private void drag_Rotate_Changed(DragListener drag) { Point currentPoint = Mouse.GetPosition(this.parent); Vector deltaVector = Point.Subtract(currentPoint, this.centerPoint); double angle = Vector.AngleBetween(this.startVector, deltaVector); var destAngle = this.initialAngle + Math.Round(angle, 0); if (!Keyboard.IsKeyDown(Key.LeftCtrl)) { destAngle = ((int)destAngle / 15) * 15; } ModelTools.ApplyTransform(this.ExtendedItem, new RotateTransform() { Angle = destAngle }); }