private void DrawNewArrow(Arrow oldArrow) { var newArrow = new Arrow { X1 = oldArrow.X1, X2 = oldArrow.X2, Y1 = oldArrow.Y2 + 40, Y2 = oldArrow.Y2 + 70, AllowDrop = oldArrow.AllowDrop, HeadHeight = oldArrow.HeadHeight, HeadWidth = oldArrow.HeadWidth, Stroke = oldArrow.Stroke, StrokeThickness = oldArrow.StrokeThickness }; DropCanvas.Children.Add(newArrow); }
private void DropCanvas_OnDrop(object sender, DragEventArgs e) { //pobranie wybranego bloku z listy var polygon = (Polygon)e.Data.GetData(typeof(Polygon)); //pobranie strzałki, na którą rzucane są bloki _dropArrow = (Arrow) e.OriginalSource; //"zabezpieczenie" przed pustym obiektem if (polygon == null) return; //pobranie miejsca, w którym został upuszczony blok _dropPoint = e.GetPosition(DropCanvas); //przesunięcie istniejących elementów o wysokości >= _dropPoint MoveExistingBlocksIfNecessary(DropCanvas); //tworzenie nowej strzałki DrawNewArrow(_dropArrow); //tworzenie nowego bloku CreateNewPolygon(polygon); //jeżeli strzałka -> wysokość + 30 lub wysokość bloku ResizeCanvas(DropCanvas); }
private double GetArrowPosition(Arrow child) { return child.Y1; }
private double GetArrowPosition(Arrow child) { return(child.Y1); }