public RadPageViewMenuDisplayingEventArgs(List <RadMenuItemBase> items, Rectangle alignRect, HorizontalPopupAlignment hAlign, VerticalPopupAlignment vAlign) { this.items = items; this.hAlign = hAlign; this.vAlign = vAlign; this.alignRect = alignRect; }
private void DisplayItemListMenu(RadPageViewStripElement view) { RadPageViewElementBase itemListButton = (RadPageViewElementBase)this.buttonsPanel.ItemListButton; HorizontalPopupAlignment hAlign = this.RightToLeft ? HorizontalPopupAlignment.RightToRight : HorizontalPopupAlignment.LeftToLeft; VerticalPopupAlignment vAlign = VerticalPopupAlignment.TopToBottom; switch (view.StripAlignment) { case StripViewAlignment.Right: hAlign = HorizontalPopupAlignment.RightToLeft; vAlign = VerticalPopupAlignment.TopToTop; break; case StripViewAlignment.Left: hAlign = HorizontalPopupAlignment.LeftToRight; vAlign = VerticalPopupAlignment.TopToTop; break; } view.DisplayItemListMenu(itemListButton, hAlign, vAlign); }
/// <summary> /// Displays the item list menu, using the provided element as menu's owner and the specified horizontal and vertical alignment. /// </summary> /// <param name="menuOwner"></param> /// <param name="hAlign"></param> /// <param name="vAlign"></param> public void DisplayItemListMenu(RadPageViewElementBase menuOwner, HorizontalPopupAlignment hAlign, VerticalPopupAlignment vAlign) { if (this.ElementState != ElementState.Loaded) { return; } if (this.itemListMenu.DropDown.IsDisplayed) { this.itemListMenu.DropDown.ClosePopup(RadPopupCloseReason.CloseCalled); } List <RadMenuItemBase> menuItems = new List <RadMenuItemBase>(); foreach (RadPageViewItem item in this.items) { if (item.Visibility == ElementVisibility.Collapsed) { continue; } RadMenuItem menuItem = new RadMenuItem(item.Text); menuItem.Image = item.Image; menuItem.Click += this.OnItemListMenuItem_Click; menuItem.Tag = item; if (item == this.selectedItem) { menuItem.IsChecked = true; } menuItems.Add(menuItem); } Rectangle alignRect = this.ElementTree.Control.RectangleToScreen(menuOwner.ControlBoundingRectangle); RadPageViewMenuDisplayingEventArgs e = new RadPageViewMenuDisplayingEventArgs(menuItems, alignRect, hAlign, vAlign); this.DisplayItemListMenu(e); }