コード例 #1
0
        private void DoOnItemClicked(RadMenuItemBase menuItem, MouseEventArgs e)
        {
            if (!menuItem.HasChildren && menuItem.GetSite() == null)
            {
                menuItem.Select();
                PopupManager.Default.CloseAllToRoot(RadPopupCloseReason.Mouse, this);

                if (menuItem.RootItem == null ||
                    !(menuItem.RootItem.Owner is RadMenuElement))
                {
                    return;
                }

                if (menuItem.Owner is RadMenuElement)
                {
                    if ((menuItem.Owner as RadMenuElement).ElementTree.Control is RadMenu)
                    {
                        ((menuItem.Owner as RadMenuElement).ElementTree.Control as RadMenu).SetMenuState(RadMenu.RadMenuState.NotActive);
                    }
                }
            }
            else
            {
                if (!(menuItem.GetSite() != null && e.Button == MouseButtons.Right))
                {
                    menuItem.ShowChildItems();
                }
            }
        }
コード例 #2
0
        protected override void OnMouseClick(MouseEventArgs e)
        {
            RadMenuItemBase menuItem = this.ElementTree.GetElementAtPoint(e.Location) as RadMenuItemBase;

            base.OnMouseClick(e);

            RadElement ownerElement = this.GetRootOwnerElement();

            if (ownerElement != null && e.Button == MouseButtons.Left &&
                ownerElement.IsDesignMode)
            {
                this.DoDesignTimeDoubleClick(e);
            }
            else
            {
                if (menuItem == null || !menuItem.Enabled)
                {
                    return;
                }

                this.clickedItem = menuItem;
                this.DoOnItemClicked(menuItem, e);

                if (menuItem.GetSite() == null)
                {
                    if (!menuItem.IsMouseOver)
                    {
                        menuItem.PerformClick();
                    }
                }

                this.clickedItem = null;
            }
        }
コード例 #3
0
 protected virtual void PerformMenuItemClick(RadMenuItemBase menuItem)
 {
     if (menuItem.GetSite() != null || menuItem.IsMouseOver)
     {
         return;
     }
     menuItem.PerformClick();
 }
コード例 #4
0
        private void DoDesignTimeDoubleClick(MouseEventArgs e)
        {
            RadMenuItemBase oldElementUnderMouse = null;

            oldElementUnderMouse = elementUnderMouse;
            elementUnderMouse    = this.ElementTree.GetElementAtPoint(e.Location) as RadMenuItemBase;

            if (dblClickStopWatch == null)
            {
                dblClickStopWatch = Stopwatch.StartNew();
                return;
            }

            if (elementUnderMouse != oldElementUnderMouse)
            {
                if (dblClickStopWatch != null)
                {
                    dblClickStopWatch.Reset();
                    dblClickStopWatch.Start();
                }
                return;
            }

            if (dblClickStopWatch.ElapsedMilliseconds < SystemInformation.DoubleClickTime)
            {
                if (elementUnderMouse == null)
                {
                    return;
                }
                ISite site = elementUnderMouse.GetSite();

                if (site == null)
                {
                    return;
                }

                IDesignerHost host = (IDesignerHost)site.GetService(typeof(IDesignerHost));
                if (host == null)
                {
                    return;
                }

                this.ClosePopup(RadPopupCloseReason.Mouse);

                if (this.OwnerPopup != null)
                {
                    PopupManager.Default.CloseAllToRoot(RadPopupCloseReason.Mouse, this.OwnerPopup);
                }

                dblClickStopWatch.Reset();
                elementUnderMouse = null;
            }
            else
            {
                dblClickStopWatch.Reset();
                elementUnderMouse = null;
            }
        }