private void OnMouseLeave(object sender, MouseEventArgs e) { if (_adornerLayer != null && _adorner != null && !(base.AssociatedObject.IsChecked.HasValue && base.AssociatedObject.IsChecked.Value)) { _adorner.RemoveChild(); _adornerLayer.Remove(_adorner); _adorner = null; _adornerLayer = null; } }
private void OnMouseEnter(object sender, MouseEventArgs e) { if (this.Content != null && _adorner == null) { Control control = new Control(); control.Template = this.Content; control.DataContext = base.AssociatedObject.DataContext; _adorner = new ControlAdorner(base.AssociatedObject, control); _adorner.Placement = this.Placement; _adorner.OffsetX = this.OffsetX; _adorner.OffsetY = this.OffsetY; _adorner.PositionX = this.PositionX; _adorner.PositionY = this.PositionY; _adornerLayer = AdornerLayer.GetAdornerLayer(base.AssociatedObject); _adornerLayer.Add(_adorner); } }