This chapter explains the typical process of manipulating the MiniToolbar.
The source code for this example is contained in the following directories:
Used TX Text Control controls:
Relevant API links:
Inspired by Microsoft Word, the new MiniToolbar is a small version of the full ribbon toolbar providing the most common formatting features. The MiniToolbar appears when text is selected or selected text is right-clicked.
This context sensitive toolbar is very handy for quick formatting tasks without moving the mouse back and forth from the selection to the full ribbon bar.
When right-clicking a selection or an object such as a table or text frame, contextual features are displayed in the MiniToolbar.
The TextControl.ShowMiniToolbar property can be used to control under which circumstances the toolbar should be shown. By default, the MiniToolbar is not shown and must be enabled programmatically to keep applications backwards compatible. In the TextControl.MiniToolbarOpening event, the MiniToolbar can be customized or replaced.
The sample adds a new group to the MiniToolbar to edit hyperlinks when the MiniToolbar is opened by clicking a hyperlink in a document. The following code creates a new RibbonGroup:
private TXTextControl.Windows.Forms.Ribbon.RibbonGroup CreateEditHyperlinkGroup() {
// Create a ribbon group that contains...
TXTextControl.Windows.Forms.Ribbon.RibbonGroup rgEditHyperlinkGroup = new TXTextControl.Windows.Forms.Ribbon.RibbonGroup() {
ShowSeperator = false
};
// ... a button to open the TextControl Edit HyperlinkDialog.
TXTextControl.Windows.Forms.Ribbon.RibbonButton rbtnEditHyperlink = new TXTextControl.Windows.Forms.Ribbon.RibbonButton();
rbtnEditHyperlink.Text = "Edit Hyperlink";
rbtnEditHyperlink.LargeIcon = TXTextControl.Windows.Forms.ResourceProvider.GetLargeIcon(TXTextControl.Windows.Forms.Ribbon.RibbonInsertTab.RibbonItem.TXITEM_InsertHyperlink.ToString(), this);
rbtnEditHyperlink.Click += EditHyperlink_Click;
// Add the edit hyperlink button to group.
rgEditHyperlinkGroup.RibbonItems.Add(rbtnEditHyperlink);
return rgEditHyperlinkGroup;
}
This group is added in the TextControl.TextMiniToolbarInitialized event:
private void TextControl_TextMiniToolbarInitialized(object sender, TXTextControl.MiniToolbarInitializedEventArgs e) {
// Ensure that the TextMiniToolbar's table layout group won't be displayed if the input position is inside a table.
e.MiniToolbar.RibbonGroups.Remove((e.MiniToolbar as TXTextControl.TextMiniToolbar).FindItem(TXTextControl.TextMiniToolbar.RibbonItem.TXITEM_TableLayoutGroup) as TXTextControl.Windows.Forms.Ribbon.RibbonGroup);
// Create and add a ribbon group to the TextMiniToolbar that provides an "Edit Hyperlink" button.
e.MiniToolbar.RibbonGroups.Add(CreateEditHyperlinkGroup());
}
In the TextControl.MiniToolbarOpening event, contextual groups are hidden dynamically:
private void TextControl_TextMiniToolbarInitialized(object sender, TXTextControl.MiniToolbarInitializedEventArgs e) {
// Ensure that the TextMiniToolbar's table layout group won't be displayed if the input position is inside a table.
e.MiniToolbar.RibbonGroups.Remove((e.MiniToolbar as TXTextControl.TextMiniToolbar).FindItem(TXTextControl.TextMiniToolbar.RibbonItem.TXITEM_TableLayoutGroup) as TXTextControl.Windows.Forms.Ribbon.RibbonGroup);
// Create and add a ribbon group to the TextMiniToolbar that provides an "Edit Hyperlink" button.
e.MiniToolbar.RibbonGroups.Add(CreateEditHyperlinkGroup());
}
When right-clicking a hyperlink in the sample, the MiniToolbar is shown with the new contextual ribbon group: