private List <SplitInfo> GetDivisionInfo(EditorControl rootCtrl) { List <SplitInfo> splitInfoTbl = new List <SplitInfo>(); if (null == rootCtrl) { return(splitInfoTbl); } EditorCtrlComposite rootComp = rootCtrl as EditorCtrlComposite; if (null == rootComp) { return(splitInfoTbl); } if (rootCtrl is SpliterCtrl) { SplitInfo newInfo = new SplitInfo(); newInfo.SpliterID = rootCtrl.CtrlID; newInfo.SpliterPath = rootCtrl.GetCtrlIDPath(); newInfo.SplitOffset = rootCtrl.layoutConstraint.spliterOffset; newInfo.SpliterOffsetInv = rootCtrl.layoutConstraint.spliterOffsetInv; splitInfoTbl.Add(newInfo); } foreach (var item in rootComp.children) { splitInfoTbl.AddRange(GetDivisionInfo(item)); } return(splitInfoTbl); }