private void El_PreviewMouseMove(object sender, MouseEventArgs e) { ElementControl element = sender as ElementControl; if (!(sender is ElementControl) || !element.IsSelected || !element.IsDrag) { return; } element.SetLocation(e.GetPosition(EditorCanvas)); foreach (Connection connection in GraphClass.Connections .Where(c => c.Start.Id == element.Element.Id || c.Finish.Id == element.Element.Id).ToList()) { connection.CalculatePoints(); } }
/// <summary> /// Создание нового элемента /// </summary> /// <returns></returns> public static ElementControl CreateElementControl(ElementClass element, RoutedEventHandler menuHandler) { ElementControl el = new ElementControl(); Panel.SetZIndex(el, ElementZIndex++); el.Element = element; el.UpdateView(); el.SetLocation(element.Location); MenuItem connectionMenuItem = new MenuItem() { Header = "_Соединить элемент" }; connectionMenuItem.Click += menuHandler; el.MainGrid.ContextMenu?.Items.Insert(2, connectionMenuItem); Elements.Add(el); return(el); }