public ControlAdorner(LinkableControl AdorneredItem) : base(AdorneredItem) { _children = new List <LinkPin>(4); foreach (var pos in AdorneredItem.GetLinkPositions()) { LinkPin pin = new LinkPin(pos.Orient, pos.Position); this._children.Add(pin); this.AddLogicalChild(pin); this.AddVisualChild(pin); } }
static void IsLinkDragOverPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { LinkableControl lc = o as LinkableControl; AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(lc); if (lc.LinkableAdorner != null && adornerLayer != null) { if (e.NewValue.Equals(true)) { lc.LinkableAdorner.Visibility = Visibility.Visible; adornerLayer.Add(lc.LinkableAdorner); } else { lc.LinkableAdorner.Visibility = Visibility.Hidden; adornerLayer.Remove(lc.LinkableAdorner); } } }