RichEditMenuCustomization.Customizations Property
Allows you to customize the Rich Text Editor’s context menu. You can add, modify or remove menu items. This is a dependency property.
Namespace: DevExpress.Xpf.RichEdit.Menu
Assembly: DevExpress.Xpf.RichEdit.v24.2.dll
NuGet Package: DevExpress.Wpf.RichEdit
Declaration
Property Value
Type | Description |
---|---|
ObservableCollection<DevExpress.Xpf.Bars.IBarManagerControllerAction> | A collection of bar actions. |
Example
The example below demonstrates how to customize the Text context menu.
<dx:ThemedWindow x:Class="WpfRichEditorMenuCustomization.MainWindow" mc:Ignorable="d" Title="Rich Text Editor"
Height="450" Width="800"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfRichEditorMenuCustomization"
xmlns:dxre="http://schemas.devexpress.com/winfx/2008/xaml/richedit"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars">
<Grid>
<dxre:RichEditControl Name="richTextEditor">
<dxre:RichEditControl.MenuCustomizations>
<dxre:RichEditMenuCustomization MenuType="Text">
<!--Add a separator after the first three menu items.-->
<dxb:InsertAction Index="4">
<dxb:BarItemSeparator />
</dxb:InsertAction>
<!--Insert a custom menu item to highlight selected text.-->
<dxb:InsertAction Index="5">
<dxb:BarButtonItem Content="Highlight Selection"
ItemClick="HighlightSelection_ItemClick" />
</dxb:InsertAction>
<!--Add a new item to the end of the context menu
and bind this item to the Rich Text Editor's command.-->
<dxb:BarButtonItem Command="{Binding RelativeSource={RelativeSource Self}, Mode=OneWay,
Path=(dxre:RichEditControl.RichEdit).CommandProvider.InsertFloatingPicture}"
Content="Insert Picture" />
<!--Change the "New Comment" item's content.-->
<dxb:UpdateAction ElementName="{x:Static dxre:DefaultBarItemNames.PopupMenuItem_NewComment}"
PropertyName="Content"
Value="Add Comment"/>
<!--Remove the "Increase Indent" item from the menu.-->
<dxb:RemoveAction ElementName="{x:Static dxre:DefaultBarItemNames.PopupMenuItem_IncreaseIndent}"/>
<!--Remove the "Decrease Indent" item from the menu.-->
<dxb:RemoveAction ElementName="{x:Static dxre:DefaultBarItemNames.PopupMenuItem_DecreaseIndent}"/>
</dxre:RichEditMenuCustomization>
</dxre:RichEditControl.MenuCustomizations>
</dxre:RichEditControl>
</Grid>
</dx:ThemedWindow>
Handle the Highlight Selection item’s ItemClick event to highlight selected text in yellow.
using DevExpress.XtraRichEdit.API.Native;
// ...
private void HighlightSelection_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) {
var selectedRanges = richTextEditor.Document.Selections;
foreach (var range in selectedRanges) {
var charProps = richTextEditor.Document.BeginUpdateCharacters(range);
charProps.BackColor = System.Drawing.Color.Yellow;
richTextEditor.Document.EndUpdateCharacters(charProps);
}
}
See Also