private void OnElementDragDropCompleted(object sender, DragEventArgs e) { MindmapShapeBase newShape; if (this.DraggingCandidate is MindmapRootShape) newShape = new MindmapFirstLevelShape(); else newShape = new MindmapOuterShape(); this.AddShape(newShape, this.GetTransformedPoint(e.GetPosition(this)), true); this.AddConnection(new RadDiagramConnection { Source = this.DraggingCandidate, Target = newShape }, true); this.DraggingCandidate = null; e.Handled = true; }
private void ToggleChildrenVisibilityRecursively(Visibility nextVisibility, MindmapShapeBase shape) { if (shape == null || nextVisibility == System.Windows.Visibility.Visible && shape.AreChildrenVisible == false) return; foreach (var connection in this.ParentDiagram.GetOutgoingConnectionsForShape(shape)) { connection.Visibility = nextVisibility; if (!shape.Equals(connection.Target) && connection.Target != null) { connection.Target.Visibility = nextVisibility; this.ToggleChildrenVisibilityRecursively(nextVisibility, connection.Target as MindmapShapeBase); } } }