private void SelectorCanvas_Draw(CanvasControl canvas, CanvasDrawEventArgs args) { var ds = args.DrawingSession; var W = (float)canvas.Width; var HW = W / 2; var n = SymbolShapes.Count; var m = SelectorCanvas.MinHeight; var v = (n + 1) * W; SelectorCanvas.Height = (v > m) ? v : m; var center_0 = new Vector2(HW, HW); for (int i = 0; i < n; i++) { var a = i * W; var b = (i + 1) * W; var center = new Vector2(HW, a + HW); var shape = SymbolShapes[i]; var strokeWidth = shape.StrokeWidth; if (SelectedShapes.Contains(shape)) { Shape.HighLight(ds, W, i); } shape.Draw(canvas, ds, HW, center, strokeWidth); ds.DrawLine(0, b, b, b, Colors.LightGray, 1); } }
public void DeleteSelectedShapes() { DrawnShapes.RemoveAll(s => SelectedShapes.Contains(s)); SelectedShapes.Clear(); _g.RefreshView(); ClickedOnSelectedShape = false; CreateMemento(); }
private void EditorCanvas_Draw(CanvasControl sender, CanvasDrawEventArgs args) { var ds = args.DrawingSession; var scale = EditSize / 2; DrawEditorBackgroundGrid(ds); if (EditContact == Edit_Contact.Contacts) { foreach (var shape in SymbolShapes) { var strokeWidth = shape.StrokeWidth * 5; shape.Draw(EditorCanvas, ds, scale, Center, strokeWidth, Shape.Coloring.Light); } DrawTargetContacts(ds); } else { if (SelectedShapes.Count > 0) { foreach (var shape in SymbolShapes) { var coloring = SelectedShapes.Contains(shape) ? Shape.Coloring.Light : Shape.Coloring.Gray; var strokeWidth = shape.StrokeWidth * 5; shape.Draw(EditorCanvas, ds, scale, Center, strokeWidth, coloring); } _polylineTarget = SelectedShapes.First() as Polyline; _targetPoints.Clear(); Shape.DrawTargets(SelectedShapes, _targetPoints, ds, scale, Center); } else { foreach (var shape in SymbolShapes) { var strokeWidth = shape.StrokeWidth * 5; shape.Draw(EditorCanvas, ds, scale, Center, strokeWidth, Shape.Coloring.Normal); } } SymbolCanvas.Invalidate(); SelectorCanvas.Invalidate(); } }
public void AddRemoveSelectedShape(int x, int y) { var shape = DrawnShapes.LastOrDefault(s => s.Contains(x, y)); if (shape == null) { SelectedShapes.Clear(); } else { if (!SelectedShapes.Contains(shape)) { SelectedShapes.Add(shape); } else { SelectedShapes.Remove(shape); } } _g.RefreshView(); }
private void ShapeSelectorHit(int index) { var shape = SymbolShapes[index]; if (IsSelectOneOrMoreShapeMode) { if (SelectedShapes.Contains(shape)) { SelectedShapes.Remove(shape); } else { SelectedShapes.Add(shape); } } else { SelectedShapes.Clear(); SelectedShapes.Add(shape); } GrtProperty(shape); PickerShape = null; if (SelectedShapes.Count > 0) { SetShapesAreSelected(); } else { SetIdleOnVoid(); } PickerShape = null; SetSizeSliders(); PickerCanvas.Invalidate(); EditorCanvas.Invalidate(); }