/// <summary> /// /// </summary> public string ExportLocation() { ArrowLineInfo ail = new ArrowLineInfo(); ail.Type = this.GetType().Name; ail.Name = this.Name; ail.Guid = this.LineGuid; ail.StartX = StartPoint.X; ail.StartY = StartPoint.Y; ail.EndX = EndPoint.X; ail.EndY = EndPoint.Y; var aa = ail.ToXElement("ArrowLine"); return(aa.ToString()); }
/// <summary> /// 导入数据 /// </summary> /// <param name="root"></param> void ImportWorkFlow(XElement root) { if (null == root) { return; } _OldWorkFlowStr = root.ToString(); btnClear_Click(null, null); this.print.Children.Add(_Cm); this.print.Children.Add(_txtActivityContent); var controls = root.Element("Controls"); Index = controls.GetAttributeValue("Index").ConvertTo <Int32>(); var activitys = controls.Elements("Activity"); var arrowlines = controls.Elements("ArrowLine"); foreach (var v in arrowlines) { ArrowLineInfo ali = v.ToModel <ArrowLineInfo>(); if (null == ali) { continue; } ArrowLine al = new ArrowLine(ali.StartPoint, ali.EndPoint); al.Name = ali.Name; al.LineGuid = ali.Guid; CreateArrowLine(al); } foreach (var v in activitys) { ActivityInfo ai = v.ToModel <ActivityInfo>(); if (null == ai) { continue; } var config = ParseActivityConfig.GetActivityConfig(ai.Type); if (null == config) { continue; } var ba = Wrapper.CreateControl <XtnBaseActivity>(config.AssemblyQualifiedName); ba.Name = ai.Name; ba.Height = ai.Height; ba.Width = ai.Width; ba.ActivityGUID = ai.Guid; ba.LabelContent = ai.Content.IsNullOrEmpty() ? config.Description : ai.Content; ba.CurrentLeftButtonDownPoint = ai.CurrentLeftButtonDownPoint; ba.CurrentEnterPoint = ai.CurrentEnterPoint; CreateActivity(ba); Canvas.SetTop(ba, ai.Top); Canvas.SetLeft(ba, ai.Left); } //-->规则 var rules = root.Element("Relationship"); var rulesControl = rules.Elements("Control"); foreach (var rule in rulesControl) { string _r_name = rule.GetAttributeValue("Name"); XtnBaseActivity iact = GetControlByName <XtnBaseActivity>(_r_name); if (null == iact) { continue; } var caps = rule.GetAttributeValue("Cap"); if (!caps.IsNullOrEmpty()) { var capArray = caps.Split('|'); foreach (var cap in capArray) { ArrowLine _al = GetControlByName <ArrowLine>(cap); if (null == _al) { continue; } _al.ArrowFootControl = iact; iact.DictArrowCapPoint.Add(_al.Name, _al); } } var foots = rule.GetAttributeValue("Foot"); if (!foots.IsNullOrEmpty()) { var footArray = foots.Split('|'); foreach (var foot in footArray) { ArrowLine _al = GetControlByName <ArrowLine>(foot); if (null == _al) { continue; } _al.ArrowCapControl = iact; iact.DictArrowFootPoint.Add(_al.CtrName, _al); } } } }