We need to replace the context menu for the RibbonButton items, and suppress the context menu everywhere else. We have succeeded in replacing the context menu with nothing at the top level:
<ribbon:Ribbon x:Name="ribbon" ItemsSource="{Binding RibbonItems}">
<ribbon:Ribbon.ContextMenu>
<ribbon:RibbonContextMenu>
</ribbon:RibbonContextMenu>
</ribbon:Ribbon.ContextMenu>
</ribbon:Ribbon>
(Note that the Ribbon is populated programmatically, not explicitly in xaml.)
We have replaced the RibbonButton context menu:
<DataTemplate DataType="{x:Type local:ControlData}">
<ribbon:RibbonButton>
<RibbonButton.Template>
<!-- snip -->
</RibbonButton.Template>
<RibbonButton.ContextMenu>
<RibbonContextMenu>
<MenuItem Header="Help" Command="{Binding HelpCommand}" />
</RibbonContextMenu>
</RibbonButton.ContextMenu>
</ribbon:RibbonButton>
We haven't figured out how to suppress the Context menu in the area around the menu items (pink in the pic below):
Edit: Here is the context menu that appears when clicking in the empty space around the menu items:
Any ideas would be appreciated....