/// <summary> /// 它将新元素eletoadd添加为给定父元素的最后一个子元素。 /// </summary> public void AddElement(SVGUnit parent, SVGUnit eleToAdd, ref SVGUnit last) { SVGErr err = new SVGErr("SvgDoc", "AddElement"); if (eleToAdd == null || m_root == null) { err.LogEnd(false); return; } SVGUnit parentToAdd = m_root; if (parent != null) { parentToAdd = parent; } eleToAdd.setInternalId(m_nNextId++); m_elements.Add(eleToAdd.getInternalId(), eleToAdd); eleToAdd.setParent(parentToAdd); if (parentToAdd.getChild() == null) { // 元素是第一个子元素 parentToAdd.setChild(eleToAdd); last = eleToAdd; } else { // 将元素添加为最后一个同级 //SvgElement last = GetLastSibling(parentToAdd.getChild()); if (last != null) { last.setNext(eleToAdd); eleToAdd.setPrevious(last); last = eleToAdd; } else { last = parentToAdd.getChild(); } } err.Log(eleToAdd.ElementInfo(), SVGErr._LogPriority.Info); err.LogEnd(true); }