public static RibbonCommandButton AddNewButton( this RibbonRow instance, string text, string commandFriendlyName, string command, string commandDescription, string smallImagePath, string largeImagePath, RibbonButtonStyle style) { var customizationSection = instance.CustomizationSection; var macroGroups = customizationSection.MenuGroup.MacroGroups; MacroGroup macroGroup; if (macroGroups.Count == 0) { macroGroup = new MacroGroup("MacroGroup", customizationSection.MenuGroup); } else { macroGroup = macroGroups[0]; } var button = new RibbonCommandButton(instance); button.Text = text; var commandMacro = "^C^C_" + command; var commandId = "ID_" + command; var buttonId = "btn" + command; var labelId = "lbl" + command; var menuMacro = macroGroup.CreateMenuMacro(commandFriendlyName, commandMacro, commandId, commandDescription, MacroType.Any, smallImagePath, largeImagePath, labelId); var macro = menuMacro.macro; /*Associate custom command to ribbonbutton macro*/ macro.CLICommand = command; button.MacroID = menuMacro.ElementID; button.ButtonStyle = style; instance.Items.Add(button); return(button); }
/// <summary> /// Creates a new button /// </summary> /// <param name="image">Image of the button (32 x 32 suggested)</param> /// <param name="smallImage">Image of the button when in medium of compact mode (16 x 16 suggested)</param> /// <param name="style">Style of the button</param> /// <param name="text">Text of the button</param> public RibbonButton() { _style = RibbonButtonStyle.Normal; _dropDownArrowDirection = RibbonArrowDirection.Down; _assignedHandlers = new Set <RibbonItem>(); DropDownItems = new RibbonItemCollection(); DropDownItems.SetOwnerItem(this); _dropDownArrowSize = new Size(5, 3); _dropDownMargin = new Padding(6); Image = CreateImage(32); SmallImage = CreateImage(16); DrawDropDownIconsBar = true; }
private void CreateRibbon() { { RibbonButtonTab tab = new RibbonButtonTab(); tab.Name = "开始"; tab.DropDown = new RibbonDropDownMenu(this.Ribbon) { Menu = CreateStartMenu() }; this.Ribbon.Tabs.Add(tab); } { RibbonTab tab = new RibbonTab(); tab.Name = "主页"; this.Ribbon.Tabs.Add(tab); { RibbonButtonGroup group = new RibbonButtonGroup(); group.Name = "剪贴板"; tab.TabPanel.Groups.Add(group); { RibbonButton button = new RibbonButton(); button.BigImage = ButtonImages.Paste; button.Name = "粘帖1"; group.BigItems.Add(button); } { RibbonButton button = new RibbonButton(); button.BigImage = ButtonImages.Paste; button.Name = "粘帖2"; button.Enabled = false; group.BigItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.CutHS; button.Name = "剪切"; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.CopyHS; button.Name = "复制"; button.ButtonStyle = RibbonButtonStyle.SplitButton; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Color_linecolor; button.Name = "格式刷"; button.ButtonStyle = RibbonButtonStyle.DropDownButton; group.SmallItems.Add(button); } } { RibbonButtonGroup group = new RibbonButtonGroup(); group.Name = "字体"; tab.TabPanel.Groups.Add(group); { RibbonButton button = new RibbonButton(); button.BigImage = ButtonImages.Paste; button.Name = "粘帖3"; button.ButtonStyle = RibbonButtonStyle.DropDownButton; group.BigItems.Add(button); } { RibbonButton button = new RibbonButton(); button.BigImage = ButtonImages.Paste; button.Name = "粘帖4"; button.ButtonStyle = RibbonButtonStyle.SplitButton; group.BigItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Window1; button.Name = "一个窗口"; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; button.ToggleGroup = 0; button.Toggled = true; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Window2; button.Name = "两个窗口"; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; button.ToggleGroup = 0; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Window3; button.Name = "三个窗口"; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; button.ToggleGroup = 0; button.Enabled = false; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Arrow1; button.Name = "第一箭头"; button.ButtonStyle = RibbonButtonStyle.ToggleButton; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Arrow2; button.Name = "第二箭头"; button.ButtonStyle = RibbonButtonStyle.ToggleButton; group.SmallItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ButtonImages.Arrow3; button.Name = "第三箭头"; button.ButtonStyle = RibbonButtonStyle.ToggleButton; group.SmallItems.Add(button); } } { RibbonToolStripGroup group = new RibbonToolStripGroup(); group.Name = "段落"; tab.TabPanel.Groups.Add(group); { RibbonToolStrip tool = new RibbonToolStrip(); tool.NormalLine = 0; tool.CompactLine = 0; group.ToolStrips.Add(tool); { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.ItemNumber; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.ItemDot; button.ButtonStyle = RibbonButtonStyle.DropDownButton; button.Enabled = false; tool.ToolItems.Add(button); } } { RibbonToolStrip tool = new RibbonToolStrip(); tool.NormalLine = 0; tool.CompactLine = 0; group.ToolStrips.Add(tool); { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.TabIn; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.TabOut; tool.ToolItems.Add(button); } } { RibbonToolStrip tool = new RibbonToolStrip(); tool.NormalLine = 1; tool.CompactLine = 1; group.ToolStrips.Add(tool); { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.AlignLeft; button.Toggled = true; button.ToggleGroup = 0; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.AlignCenter; button.ToggleGroup = 0; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.AlignRight; button.ToggleGroup = 0; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.AlignFull; button.ToggleGroup = 0; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.AlignExpand; button.ToggleGroup = 0; button.ButtonStyle = RibbonButtonStyle.GroupedToggleButton; button.Enabled = false; tool.ToolItems.Add(button); } } { RibbonToolStrip tool = new RibbonToolStrip(); tool.NormalLine = 1; tool.CompactLine = 1; group.ToolStrips.Add(tool); { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.LinePadding; tool.ToolItems.Add(button); } } { RibbonToolStrip tool = new RibbonToolStrip(); tool.NormalLine = 0; tool.CompactLine = 2; group.ToolStrips.Add(tool); { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.TableBorder; button.ButtonStyle = RibbonButtonStyle.DropDownButton; button.DropDown = new RibbonDropDownMenu(this.Ribbon) { Menu = CreateTableMenu() }; tool.ToolItems.Add(button); } { RibbonButton button = new RibbonButton(); button.SmallImage = ToolImages.SortAscending; button.ButtonStyle = RibbonButtonStyle.SplitButton; tool.ToolItems.Add(button); } } } } { RibbonTab tab = new RibbonTab(); tab.Name = "插入"; this.Ribbon.Tabs.Add(tab); { RibbonControlGroup group = new RibbonControlGroup(); group.Name = "好复杂啊"; tab.TabPanel.Groups.Add(group); RibbonControlSizingPolicy[] policies = new RibbonControlSizingPolicy[] { RibbonControlSizingPolicy.Big, RibbonControlSizingPolicy.BigSmall, RibbonControlSizingPolicy.BigCompact, RibbonControlSizingPolicy.Small, RibbonControlSizingPolicy.SmallCompact, RibbonControlSizingPolicy.Compact }; Image[] smalls = new Image[] { ControlImages.a1, ControlImages.b1, ControlImages.c1, ControlImages.d1, ControlImages.e1, ControlImages.f1 }; Image[] bigs = new Image[] { ControlImages.a2, ControlImages.b2, ControlImages.c2, ControlImages.d2, ControlImages.e2, ControlImages.f2 }; RibbonButtonStyle[] styles = new RibbonButtonStyle[] { RibbonButtonStyle.PushButton, RibbonButtonStyle.DropDownButton, RibbonButtonStyle.SplitButton }; for (int i = 0; i < 6; i++) { RibbonControlGroupPanel panel = new RibbonControlGroupPanel(); panel.Policy = policies[i]; group.Panels.Add(panel); for (int j = 0; j < 3; j++) { RibbonButton button = new RibbonButton(); button.SmallImage = smalls[i]; button.BigImage = bigs[i]; button.ButtonStyle = styles[j]; button.Name = panel.Policy.ToString() + " " + (i + 1).ToString(); panel.ControlItems.Add(button); } } } { RibbonControlGroup group = new RibbonControlGroup(); group.Name = "好复杂啊"; RibbonControlSizingPolicy[] policies = new RibbonControlSizingPolicy[] { RibbonControlSizingPolicy.Big, RibbonControlSizingPolicy.BigSmall, RibbonControlSizingPolicy.BigCompact, RibbonControlSizingPolicy.Small, RibbonControlSizingPolicy.SmallCompact, RibbonControlSizingPolicy.Compact }; Image[] smalls = new Image[] { ControlImages.a1, ControlImages.b1, ControlImages.c1, ControlImages.d1, ControlImages.e1, ControlImages.f1 }; Image[] bigs = new Image[] { ControlImages.a2, ControlImages.b2, ControlImages.c2, ControlImages.d2, ControlImages.e2, ControlImages.f2 }; RibbonButtonStyle[] styles = new RibbonButtonStyle[] { RibbonButtonStyle.PushButton, RibbonButtonStyle.DropDownButton, RibbonButtonStyle.SplitButton }; for (int i = 0; i < 6; i++) { RibbonControlGroupPanel panel = new RibbonControlGroupPanel(); panel.Policy = policies[i]; group.Panels.Add(panel); for (int j = 0; j < 3; j++) { RibbonButton button = new RibbonButton(); button.SmallImage = smalls[i]; button.BigImage = bigs[i]; button.ButtonStyle = styles[j]; button.Name = panel.Policy.ToString() + " " + (i + 1).ToString(); panel.ControlItems.Add(button); } } ((tab.TabPanel.Groups[0] as RibbonControlGroup).Panels[0].ControlItems[1] as RibbonButton).DropDown = new RibbonDropDownGroup(this.Ribbon) { Group = group }; } } { RibbonTab tab = new RibbonTab(); tab.Name = "页面布局"; this.Ribbon.Tabs.Add(tab); } { RibbonTab tab = new RibbonTab(); tab.Name = "引用"; this.Ribbon.Tabs.Add(tab); } { RibbonTab tab = new RibbonTab(); tab.Name = "设计"; this.Ribbon.Tabs.Add(tab); } { RibbonTab tab = new RibbonTab(); tab.Name = "布局"; this.Ribbon.Tabs.Add(tab); } { RibbonTabGroup group = new RibbonTabGroup(); group.Name = "表格工具"; group.FirstIndex = 5; group.LastIndex = 6; this.Ribbon.TabGroups.Add(group); } UpdateRibbon(false); }
private RibbonButton AddButton(RibbonItemCollection collection, RibbonButtonStyle style, string label, string msoImageName, string msoCommandName, RibbonElementSizeMode maxSizeMode = RibbonElementSizeMode.None, Action customAction = null) { RibbonButton button = new RibbonButton(); button.Style = style; button.MaxSizeMode = maxSizeMode; button.Text = label; AssignImage(button, msoImageName); if (customAction == null) { AssignAction(button, msoCommandName); } else { EventHandler handler = new EventHandler(delegate(object sender, EventArgs ea) { RunCommand(customAction); }); button.Click += handler; button.DoubleClick += handler; } collection.Add(button); return button; }