Я нашел способ изменить главное контекстное меню, щелкнув правой кнопкой мыши в считывателе потокового документа, добавив такой стиль.(на основе этот ответ аналогичен форматированному текстовому полю)
<Controls:MetroWindow.Resources>
<Style TargetType="FlowDocument">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Test" />
<MenuItem Header="Copy" Command="ApplicationCommands.Cut"/>
<MenuItem Header="SelectAll" Command="ApplicationCommands.SelectAll"/>
<MenuItem Header="Test" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
<!--<viewModel:MainWindow_VM x:Key="mainWindow_VM"></viewModel:MainWindow_VM>-->
</Controls:MetroWindow.Resources>
<FlowDocumentReader x:Name="textBox" Grid.Row="1" Margin="0,10,372,10" FontFamily="Tahoma" Grid.RowSpan="2" HorizontalAlignment="Right" Width="360" PreviewMouseLeftButtonUp="textBox_PreviewMouseLeftButtonUp" Document="{Binding document}">
</FlowDocumentReader>
Это работает,
![enter image description here](https://i.stack.imgur.com/9q8ur.png)
однако проблема в том, что когда я выбираю (выделяю) текст в документе, он отображает другое контекстное меню.
![enter image description here](https://i.stack.imgur.com/mB5ix.png)
Это фактическое контекстное меню, которое я хочу изменить, потому что я хочу выполнить некоторую команду для выделенного текста.
Кто-нибудь знает, как получить доступ и изменить это конкретное контекстное меню выбора текста?
РЕДАКТИРОВАТЬ Просто чтобы быть понятным, переход на другой элемент управления не является решением.Элемент управления FlowDocumentReader - мой единственный вариант.