通过添加这样的样式,我找到了一种在右侧单击流文档阅读器内部时修改主上下文菜单的方法。 (基于this answer类似于富文本框)
<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>
这有效,
然而问题是,当我选择(突出显示)文档中的文本时,它会显示不同的上下文菜单。
这是我想要修改的实际上下文菜单,因为我想对所选文本执行一些命令。
有谁知道如何访问和修改特定的文本选择上下文菜单?
编辑为了清楚起见,更改为其他控件不是解决方案。 FlowDocumentReader控件是我唯一的选择。