Search code examples
.netwpfcontextmenuflowdocumentreader

ContextMenu in FlowDocumentReader


ContextMenu works in TextBox and FlowDocumentScrollViewer.
ContextMenu does not work in FlowDocumentReader.
I just get the default for FlowDocumentReader.
How to get ContextMenu in FlowDocumentReader?

 <TextBox Grid.Row="0">
    <TextBox.ContextMenu>
        <ContextMenu>
            <MenuItem Command="Cut"/>
            <MenuItem Command="Copy"/>
            <MenuItem Command="Paste"/>
            <MenuItem Header="NewItem"/>
        </ContextMenu>
    </TextBox.ContextMenu>
    Some text
</TextBox>
<FlowDocumentReader Grid.Row="1">
    <FlowDocumentReader.ContextMenu>
        <ContextMenu>
            <MenuItem Command="Copy"/>
            <MenuItem Command="SelectAll"/>
            <MenuItem Header="NewItem"/>
        </ContextMenu>
    </FlowDocumentReader.ContextMenu>
    <FlowDocument>
        <Paragraph>some text</Paragraph>
    </FlowDocument>
</FlowDocumentReader>
<FlowDocumentScrollViewer Grid.Row="2">
    <FlowDocumentScrollViewer.ContextMenu>
        <ContextMenu>
            <MenuItem Command="Copy"/>
            <MenuItem Command="SelectAll"/>
            <MenuItem Header="New Item"/>
        </ContextMenu>
    </FlowDocumentScrollViewer.ContextMenu>
    <FlowDocument>
        <Paragraph>some text</Paragraph>
    </FlowDocument>
</FlowDocumentScrollViewer>

Solution

  • The solution was to put the ContextMenu on the FlowDocument

            <FlowDocumentReader Grid.Row="1">
                <FlowDocument>
                    <FlowDocument.ContextMenu>
                        <ContextMenu>
                            <MenuItem Command="Copy"/>
                            <MenuItem Command="SelectAll"/>
                            <MenuItem Header="NewItem"/>
                        </ContextMenu>
                    </FlowDocument.ContextMenu>
                    <Paragraph>some text</Paragraph>
                </FlowDocument>
            </FlowDocumentReader>