private void UpdateAdornedElement(Visual adorner, Visual adorned) { var info = adorner.GetValue(s_adornedElementInfoProperty); if (info != null) { info.Subscription.Dispose(); if (adorned == null) { adorner.ClearValue(s_adornedElementInfoProperty); } } if (adorned != null) { if (info == null) { info = new AdornedElementInfo(); adorner.SetValue(s_adornedElementInfoProperty, info); } info.Subscription = _tracker.Track(adorned).Subscribe(x => { info.Bounds = x; InvalidateArrange(); }); } }
private void UpdateAdornedElement(Visual adorner, Visual adorned) { var info = adorner.GetValue(AdornedElementInfoProperty); if (info != null) { info.Subscription.Dispose(); if (adorned == null) { adorner.ClearValue(AdornedElementInfoProperty); } } if (adorned != null) { if (info == null) { info = new AdornedElementInfo(); adorner.SetValue(AdornedElementInfoProperty, info); } info.Subscription = this.tracker.Track(adorned).Subscribe(x => { info.Bounds = x; this.InvalidateArrange(); }); } }