private void Mc_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { WellLocation wl = GetClickWell(e); if (wl != null) { LayerControl lc = this.AssociatedObject as LayerControl; SelectWellLocations.Add(wl.WellNum); WellPosition = new Point(wl.X, wl.Y); Point p = lc.Root.RenderTransform.Transform(WellPosition);//转换到圆心 WellPointList.Add(p); this.TrackAdorner.RemoveLastPoint(); this.TrackAdorner.AddPoint(p); this.TrackAdorner.AddPoint(p); //执行画线事件 if (OnDrawWellLine != null) { UndoWellPointListHistory.Clear(); UndoSelectWellLocationstHistory.Clear(); OnDrawWellLine.Invoke(this); } } }
public override void MouseRightButtonUp(object sender, MouseButtonEventArgs e) { if (OnFinishSelect != null && SelectWellLocations.Count != 0) { Point lastPoint = this.TrackAdorner.Track.Points[this.TrackAdorner.Track.Points.Count - 1]; if (!WellPointList.Contains(lastPoint)) { this.TrackAdorner.Track.Points.Remove(lastPoint); } IsStopMove = true; OnFinishSelect.Invoke(SelectWellLocations); } base.MouseRightButtonUp(sender, e); }
public void Redo() { Point p = UndoWellPointListHistory.Pop(); string s = UndoSelectWellLocationstHistory.Pop(); if (!IsStopMove) { this.TrackAdorner.Track.Points.Insert(this.TrackAdorner.Track.Points.Count - 1, p); } else { this.TrackAdorner.Track.Points.Add(p); } WellPointList.Add(p); SelectWellLocations.Add(s); }
public void Undo() { string lastWell = SelectWellLocations.Last(); //1.没有结束画线,lastPoint是多余点 if (!IsStopMove) { this.TrackAdorner.Track.Points.Remove(WellPointList.Last()); } //2.结束画线 else { this.TrackAdorner.RemoveLastPoint(); } UndoSelectWellLocationstHistory.Push(lastWell); UndoWellPointListHistory.Push(WellPointList.Last()); WellPointList.Remove(WellPointList.Last()); SelectWellLocations.Remove(lastWell); }