internal static FrameworkElement AdornerControlFactory(Model.Adorner adorner) { View.Adorner adornerControl = new View.Adorner(); adornerControl.Width = adorner.Area.Width; adornerControl.Height = adorner.Area.Height; SetCanvasLocation(adornerControl, adorner.Start.X, adorner.Start.Y, 1000); return(adornerControl); }
private void RotateShape(Model.Shape shape, FrameworkElement shapeControl) { if (!(shape is Model.Adorner)) { RotateTransform shapeControlRotateTransform = new RotateTransform(); shapeControlRotateTransform.Angle = shape.Rotation; TransformGroup shapeControlTransformGroup = new TransformGroup(); shapeControlTransformGroup.Children.Add(shapeControlRotateTransform); if (shape is Model.Line) { shapeControlRotateTransform.CenterX = shape.RotationCenter.X; shapeControlRotateTransform.CenterY = shape.RotationCenter.Y; } else { shapeControlRotateTransform.CenterX = shape.RotationCenter.X - shape.Start.X; shapeControlRotateTransform.CenterY = shape.RotationCenter.Y - shape.Start.Y; } shapeControl.RenderTransform = shapeControlTransformGroup; } FrameworkElement adornerControl = null; Model.Adorner adorner = null; var adornerList = (from s in _shapes where s.Key is Model.Adorner select s).ToList(); if (adornerList.Count() > 0) { adornerControl = adornerList[0].Value; adorner = (Model.Adorner)adornerList[0].Key; } if (adornerControl != null) { RotateTransform adornerRotateTransform = new RotateTransform(); adornerRotateTransform.Angle = shape.Rotation; TransformGroup adornerTransformGroup = new TransformGroup(); adornerTransformGroup.Children.Add(adornerRotateTransform); adornerControl.RenderTransform = adornerTransformGroup; adornerRotateTransform.CenterX = adorner.RotationCenter.X - adorner.Start.X - DrawHelper.adornerThickness; adornerRotateTransform.CenterY = adorner.RotationCenter.Y - adorner.Start.Y - DrawHelper.turnHandleDistance; } }