/// <summary> /// 开始拖拽(可指定是否为新连接) /// </summary> /// <param name="start"></param> /// <param name="link"></param> /// <param name="thumb"></param> /// <param name="isNew"></param> protected virtual void BeginDrag(Point start, ILink link, LinkThumbKind thumb, bool isNew) { _isNewLink = isNew; DragStart = start; Link = link; Thumb = thumb; InitialState = new LinkInfo(link); Adorner = CreateAdorner(); (View.AllFeature["Drag"] as AddAdornerFeature).SetPublicAdorner("Drag", Adorner); }
/// <summary> /// 结束拖动 /// </summary> /// <param name="doCommit"></param> public virtual void EndDrag(bool doCommit) { if (doCommit) { Controller.UpdateLink(InitialState, Link); } else { if (_isNewLink) { View.Children.Remove((Control)Link); } else { InitialState.UpdateLink(Link); } } Link.UpdatePath(); Link = null; Adorner = null; }