private void CenterPointThumb_DragDelta(object sender, DragDeltaEventArgs e) { Point dragDelta = new Point(e.HorizontalChange, e.VerticalChange); if (this.designerItem != null && this._parent != null) { if (this._transform != null) { dragDelta = _transform.Transform(dragDelta); } DesignerCanvas.SetLeft(this, DesignerCanvas.GetLeft(this) + dragDelta.X); DesignerCanvas.SetTop(this, DesignerCanvas.GetTop(this) + dragDelta.Y); e.Handled = true; } }
/// <summary> /// 已经开始拖放 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MoveThumb_DragStarted(object sender, DragStartedEventArgs e) { this._beMovedItem = DataContext as DesignerItem; sp = Mouse.GetPosition(this._parent); if (this._beMovedItem != null) { this._parent = VisualTreeHelper.GetParent(this._beMovedItem) as DesignerCanvas; this._transform = this._beMovedItem.RenderTransform as RotateTransform; AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this._parent); if (adornerLayer != null) { this._infoAdorner = new LocationInfoAdorner(this._beMovedItem); adornerLayer.Add(this._infoAdorner); } } }
public RubberbandAdorner(DesignerCanvas designerCanvas, Point?dragStartPoint) : base(designerCanvas) { this.designerCanvas = designerCanvas; this.startPoint = dragStartPoint; this.adornerCanvas = new Canvas(); this.adornerCanvas.Background = Brushes.Transparent; this.visuals = new VisualCollection(this); this.visuals.Add(this.adornerCanvas); this.rubberband = new Rectangle(); this.rubberband.Stroke = Brushes.Navy; this.rubberband.StrokeThickness = 1; this.rubberband.Fill = new SolidColorBrush(Color.FromArgb(50, 0, 191, 255)); //TODO 线段样式 //this.rubberband.StrokeDashArray = new DoubleCollection(new double[] { 2 }); this.adornerCanvas.Children.Add(this.rubberband); }
/// <summary> /// 已经开始拖放 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LineThumb_DragStarted(object sender, DragStartedEventArgs e) { this._parentItem = DataContext as DesignerItem; if (this._parentItem != null) { this._line = _parentItem.Content as Line; //初始化起点终点 this._parentCanvas = VisualTreeHelper.GetParent(this._parentItem) as DesignerCanvas; this._transform = this._line.RenderTransform as RotateTransform; AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this._parentCanvas); if (adornerLayer != null) { //TODO //this._infoAdorner = new LineAdorner(this._line); //adornerLayer.Add(this._infoAdorner); } } }