private void RotateThumb_DragStarted(object sender, DragStartedEventArgs e) { this.designerItem = DataContext as ContentControl; if (this.designerItem != null) { //this.canvas = VisualTreeHelper.GetParent(this.designerItem) as Canvas; this.canvas = WpfTreeHelper.FindUpVisualTree <Canvas>(this.designerItem); if (this.canvas != null) { this.centerPoint = this.designerItem.TranslatePoint( new Point(this.designerItem.Width * this.designerItem.RenderTransformOrigin.X, this.designerItem.Height * this.designerItem.RenderTransformOrigin.Y), this.canvas); Point startPoint = Mouse.GetPosition(this.canvas); this.startVector = Point.Subtract(startPoint, this.centerPoint); this.rotateTransform = this.designerItem.RenderTransform as RotateTransform; if (this.rotateTransform == null) { this.designerItem.RenderTransform = new RotateTransform(0); this.initialAngle = 0; } else { this.initialAngle = this.rotateTransform.Angle; } } } }
private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e) { this.designerItem = this.DataContext as ContentControl; if (this.designerItem != null) { //this.canvas = VisualTreeHelper.GetParent(this.designerItem) as Canvas; this.canvas = WpfTreeHelper.FindUpVisualTree <Canvas>(this.designerItem); if (this.canvas != null) { this.transformOrigin = this.designerItem.RenderTransformOrigin; //TODO: We need to get ALL render transforms applied by all parents this.rotateTransform = this.designerItem.RenderTransform as RotateTransform; //rotateTransform = Utils.WpfTreeHelper.GetRotationTree(designerItem) as RotateTransform; if (this.rotateTransform != null) { this.angle = this.rotateTransform.Angle * Math.PI / 180.0; } else { this.angle = 0.0d; } AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this.canvas); if (adornerLayer != null) { this.adorner = new SizeAdorner(this.designerItem); adornerLayer.Add(this.adorner); } } } }