protected override void OnDropDownClosed(RadPopupClosedEventArgs args) { base.OnDropDownClosed(args); RadMenuItemBase currentItem = this.GetSelectedItem() as RadMenuItemBase; if (currentItem != null) { currentItem.Deselect(); } if (!(this.OwnerElement is RadMenuItemBase)) { return; } RadMenuItemBase ownerMenuItem = this.OwnerElement as RadMenuItemBase; if (!(this.lastPressedKey == Keys.Escape) && !ownerMenuItem.IsOnDropDown && ownerMenuItem.ElementTree.Control is IItemsControl) { IItemsControl ownerItemsControl = ownerMenuItem.ElementTree.Control as IItemsControl; RadMenuItemBase menuItemBase = ownerItemsControl.GetSelectedItem() as RadMenuItemBase; if (!object.ReferenceEquals(menuItemBase, ownerMenuItem)) { return; } ownerMenuItem.Selected = false; } }
protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); this.IsMouseDown = false; if (this.IsPopupShown) { return; } IItemsControl control = this.ElementTree.Control as IItemsControl; if (control == null || !object.ReferenceEquals((object)control.GetSelectedItem(), (object)this)) { return; } this.Deselect(); }