public void Dispose() { if (this.IsDisposed) { return; } this.IsDisposed = true; if (this.polylineState != null) { foreach (var item in polylineState) { this.canvas.Children.Remove(item.Value.Line); } this.polylineState.Clear(); this.polylineState = null; } this.canvas = null; this.border = null; this.nw = null; this.n = null; this.ne = null; this.e = null; this.se = null; this.s = null; this.sw = null; this.w = null; this.currentState = null; this.Resize = null; }
private Polyline InitPolyline(Cursor cursor, ResizePositions resizePosition) { var line = new Polyline { StrokeThickness = 2, Stroke = new SolidColorBrush(color), Cursor = cursor }; polylineState.Add(resizePosition, new PolylineState() { Line = line, Position = resizePosition }); line.MouseDown += (sender, e) => { currentState = polylineState[resizePosition]; currentState.MouseDown = true; currentState.MouseDownPosition = e.GetPosition(canvas); currentState.Line.Stroke = new SolidColorBrush(activeColor); }; line.MouseEnter += (sender, e) => { line.Stroke = new SolidColorBrush(activeColor); }; line.MouseLeave += (sender, e) => { line.Stroke = new SolidColorBrush(color); }; line.MouseUp += (sender, e) => { if (!polylineState[resizePosition].MouseDown) { return; } polylineState[resizePosition].MouseDown = false; }; //line.MouseMove += (sender, e) => //{ // this.UpdateState(e.GetPosition(canvas)); //}; canvas.Children.Add(line); return(line); }