/// <summary> /// 删除 /// </summary> /// <param name="bz"></param> public void Del(BezierLine bz) { if (bz == null) { return; } if (contentsCanvas.Children.Contains(bz)) { contentsCanvas.Children.Remove(bz); } if (BzLines.Contains(bz)) { BzLines.Remove(bz); } if ((bz.LeftElement as MLParatItemLayout) != null) { (bz.LeftElement as MLParatItemLayout).Del(bz); } if (bz.RightElement as MLParatItemLayout != null) { (bz.RightElement as MLParatItemLayout).Del(bz); } bz.ClearEndBind(); bz.ClearStartBind(); bz.Dispose(); bz = null; }
/// <summary> /// 连接贝塞尔曲线到2个点 /// </summary> /// <param name="bz"></param> /// <param name="mlp1"></param> /// <param name="mlp2"></param> public void LinkBezier(BezierLine bz, MLParatItemLayout mlp1, MLParatItemLayout mlp2, bool isAddtoCanvas = true) { if (bz == null || mlp1 == null || mlp2 == null) { return; } BezierLine ol = mlp1.SetLink(bz); if (ol != null) { Del(ol); } ol = mlp2.SetLink(bz); if (ol != null) { Del(ol); } bz.ClearStartBind(); bz.ClearEndBind(); if (mlp1 as BezierLinkLayout.ScriptIParameterLayout.InputParaItemLayout != null) { bz.BindPointStart(mlp2, "LinkPosition"); bz.BindPointEnd(mlp1, "LinkPosition"); } else { bz.BindPointStart(mlp1, "LinkPosition"); bz.BindPointEnd(mlp2, "LinkPosition"); } IParatItem ipl = (bz.LeftElement.DataContext as IParatItem); IParatItem ipr = (bz.RightElement.DataContext as IParatItem); ipl.LinkIParatItem = ipr; ipr.LinkIParatItem = ipl; bz.Color = ipl.Color; if (isAddtoCanvas) { Add(bz); } }