private void addDragItemType(String type, object controlData, Point p) { clearSelectStatus(); //RenderBase clickItem = getClickItem(new PointF(p.X, p.Y), null); ClickPosArena arena; TDPanel panel = RenderBase.GetPanelNode(getClickItem(p, out arena)); RenderBase item = null; try { item = UIHelper.CEGenerateItemByName(type, controlData as String, panel == null ? this : panel); } catch (NestException ex) { EventManager.RaiserEvent(Constant.StatusInfoChange, this, String.Format("{0} 文件不能嵌套 {1} 文件", this.panelPath, ex.Message)); } if (item != null) { if (type == Constant.TypeSprite && controlData is String) { (item as TDSprite).ImagePath = controlData as String; } DynamicObj.propDock.SetSelectItem(item); if (panel != null) { PointF panelPos = panel.startPos(); item.pos = new PointF(p.X - panelPos.X, p.Y - panelPos.Y); } else { item.pos = p; } commandManager.AddCommand(new CommandAdd(this, item)); checkModifyStatus(); } EventManager.RaiserEvent(Constant.RenderItemChange, this, null); Refresh(); }
public void changePosByUniQue(String srcUni, String destUni) { RenderBase src = getRenderByUniqueName(srcUni); RenderBase dest = getRenderByUniqueName(destUni); if (src == null || dest == null || src is RenderScene || src == dest) { return; } TDPanel parent = dest.getParent() as TDPanel; if (parent == null) { return; } List <RenderBase> childs = new List <RenderBase>(); foreach (RenderBase child in parent.ChildItems) { if (child == dest) { childs.Add(child); childs.Add(src); } else if (child != src) { childs.Add(child); } } if (src.getParent() != dest.getParent()) { src.removeFromParent(); src.setParent(dest.getParent()); } parent.ChildItems = childs; Invalidate(); }