private void Cmd_DeleteStation(object sender, ExecutedRoutedEventArgs e) { StationIconElement arriver = (StationIconElement)e.OriginalSource; EllipseGeometry geometry = (EllipseGeometry)arriver.Icon; Point pos = geometry.Center; Thickness ness = GetThickness(pos, NoneList); YesList.Add(ness); NoneList.Remove(ness); Canvas.Children.Remove(arriver); ContextMenuClosed = true; }
private void Cmd_DeleteCircuit(object sender, ExecutedRoutedEventArgs e) { CircuitIconElement arriver = (CircuitIconElement)e.OriginalSource; LineGeometry geometry = (LineGeometry)arriver.Icon; Thickness start = GetThickness(geometry.StartPoint, NoneList); Thickness end = GetThickness(geometry.EndPoint, NoneList); if (start.Left < end.Left) { if (start.Top < end.Top) { var vpl = NoneListCirc.Where(a => (a.Left >= start.Left) && (a.Left <= end.Left) && (a.Top >= start.Top) && (a.Top <= end.Top)); YesList.AddRange(vpl); NoneListCirc.RemoveAll(x => vpl.Contains(x)); } else { var vpl = NoneListCirc.Where(a => (a.Left >= start.Left) && (a.Left <= end.Left) && (a.Top <= start.Top) && (a.Top >= end.Top)); YesList.AddRange(vpl); NoneListCirc.RemoveAll(x => vpl.Contains(x)); } } else { if (start.Top < end.Top) { var vpl = NoneListCirc.Where(a => (a.Left <= start.Left) && (a.Left >= end.Left) && (a.Top >= start.Top) && (a.Top <= end.Top)); YesList.AddRange(vpl); NoneListCirc.RemoveAll(x => vpl.Contains(x)); } else { var vpl = NoneListCirc.Where(a => (a.Left <= start.Left) && (a.Left >= end.Left) && (a.Top <= start.Top) && (a.Top >= end.Top)); YesList.AddRange(vpl); NoneListCirc.RemoveAll(x => vpl.Contains(x)); } } Canvas.Children.Remove(arriver); ContextMenuClosed = true; }
private void Cmd_CreateStation(object sender, ExecutedRoutedEventArgs e) { StationIconElement iconElement = new StationIconElement(); EllipseGeometry ellipse = new EllipseGeometry(); ellipse.RadiusX = 7.5; ellipse.RadiusY = 7.5; Path arriver = (Path)e.OriginalSource; EllipseGeometry geometry = (EllipseGeometry)arriver.Data; Point pos = geometry.Center; var str = YesList.Where(n => ((n.Left < pos.X) && (n.Right > pos.X) && (n.Top < pos.Y) && (n.Bottom > pos.Y))); Thickness ness = str.FirstOrDefault(); ellipse.Center = new Point(ness.Left + Step / 2 - 0.25, ness.Top + Step / 2 - 0.25); YesList.Remove(ness); NoneList.Add(ness); iconElement.Icon = ellipse; iconElement.Style = (Style)Application.Current.FindResource("IconStyle"); //DragInCanvasBehavior dragInCanvas = new DragInCanvasBehavior(); //Interaction.GetBehaviors(iconElement).Add(dragInCanvas); Canvas.Children.Add(iconElement); Canvas.SetZIndex(iconElement, 2); }