/// <summary> /// Removes the insertion adorner. /// </summary> private void RemoveInsertionAdorner() { if (this.insertionAdorner != null) { this.insertionAdorner.Detach(); this.insertionAdorner = null; } }
/// <summary> /// Creates or updates the insertion adorner. /// </summary> private void CreateOrUpdateInsertionAdorner() { if (this.insertionAdorner != null) { this.insertionAdorner.IsInFirstHalf = this.isInFirstHalf; this.insertionAdorner.InvalidateVisual(); } else { if (this.targetItemContainer != null) { // Here, I need to get adorner layer from targetItemContainer and not targetItemsControl. // This way I get the AdornerLayer within ScrollContentPresenter, and not the one under AdornerDecorator (Snoop is awesome). // If I used targetItemsControl, the adorner would hang out of ItemsControl when there's a horizontal scroll bar. var adornerLayer = AdornerLayer.GetAdornerLayer(this.targetItemContainer); this.insertionAdorner = new InsertionAdorner( this.hasVerticalOrientation, this.isInFirstHalf, this.targetItemContainer, adornerLayer); } } }