private void EnsurePopup() { if (!CUIUtility.IsNullOrUndefined(_popupLayout)) { return; } if (string.IsNullOrEmpty(PopupLayoutTitle)) { throw new ArgumentNullException("No PopupLayoutTitle has been set."); } // Create the Components and Controls needed for the Group Popup _popupLayout = Ribbon.CreateGroupPopupLayout(this.Id + "-Popup", this); _popupMenu = Ribbon.CreateMenu(this.Id + "-popupMenu", null, null, null); _popupMenuSection = Ribbon.CreateMenuSection(this.Id + "-popupMenuSection", null, null, false, null, null); JSObject tempObj = new JSObject(); FlyoutAnchorProperties props = tempObj.To <FlyoutAnchorProperties>(); props.LabelText = Title; RibbonProperties ribbonProperties = Ribbon.RibbonProperties; if (!string.IsNullOrEmpty(Properties.Image32by32Popup)) { props.Image32by32 = Properties.Image32by32Popup; props.Image32by32Class = Properties.Image32by32PopupClass; props.Image32by32Top = Properties.Image32by32PopupTop; props.Image32by32Left = Properties.Image32by32PopupLeft; } else { props.Image32by32 = ribbonProperties.Image32by32GroupPopupDefault; props.Image32by32Class = ribbonProperties.Image32by32GroupPopupDefaultClass; props.Image32by32Left = ribbonProperties.Image32by32GroupPopupDefaultLeft; props.Image32by32Top = ribbonProperties.Image32by32GroupPopupDefaultTop; } props.Command = this.Command; _popupAnchor = new FlyoutAnchor(Ribbon, this.Id + "-PopupAnchor", props, _popupMenu); _popupAnchor.IsGroupPopup = true; // Set the enabled state of the anchor to the enabled state of the Group initially _popupAnchor.Enabled = Enabled; _popup = Ribbon.CreateGroupPopup(this.Id + "-popupMenuItem", this); // Compose the hierarchy needed for the Group Popup _popupLayout.AddChild(_popupAnchor.CreateComponentForDisplayMode("Large")); _popupMenu.AddChild(_popupMenuSection); _popupMenuSection.AddChild(_popup); _popup.LayoutTitle = PopupLayoutTitle; AddChild(_popupLayout); }
private void EnsurePopup() { if (!CUIUtility.IsNullOrUndefined(_popupLayout)) return; if (string.IsNullOrEmpty(PopupLayoutTitle)) throw new ArgumentNullException("No PopupLayoutTitle has been set."); // Create the Components and Controls needed for the Group Popup _popupLayout = Ribbon.CreateGroupPopupLayout(this.Id + "-Popup", this); _popupMenu = Ribbon.CreateMenu(this.Id + "-popupMenu", null, null, null); _popupMenuSection = Ribbon.CreateMenuSection(this.Id + "-popupMenuSection", null, null, false, null, null); JSObject tempObj = new JSObject(); FlyoutAnchorProperties props = tempObj.To<FlyoutAnchorProperties>(); props.LabelText = Title; RibbonProperties ribbonProperties = Ribbon.RibbonProperties; if (!string.IsNullOrEmpty(Properties.Image32by32Popup)) { props.Image32by32 = Properties.Image32by32Popup; props.Image32by32Class = Properties.Image32by32PopupClass; props.Image32by32Top = Properties.Image32by32PopupTop; props.Image32by32Left = Properties.Image32by32PopupLeft; } else { props.Image32by32 = ribbonProperties.Image32by32GroupPopupDefault; props.Image32by32Class = ribbonProperties.Image32by32GroupPopupDefaultClass; props.Image32by32Left = ribbonProperties.Image32by32GroupPopupDefaultLeft; props.Image32by32Top = ribbonProperties.Image32by32GroupPopupDefaultTop; } props.Command = this.Command; _popupAnchor = new FlyoutAnchor(Ribbon, this.Id + "-PopupAnchor", props, _popupMenu); _popupAnchor.IsGroupPopup = true; // Set the enabled state of the anchor to the enabled state of the Group initially _popupAnchor.Enabled = Enabled; _popup = Ribbon.CreateGroupPopup(this.Id + "-popupMenuItem", this); // Compose the hierarchy needed for the Group Popup _popupLayout.AddChild(_popupAnchor.CreateComponentForDisplayMode("Large")); _popupMenu.AddChild(_popupMenuSection); _popupMenuSection.AddChild(_popup); _popup.LayoutTitle = PopupLayoutTitle; AddChild(_popupLayout); }