<ContextMenu>
<ContextMenu.Resources>
<Style TargetType="MenuItem">
<Setter Property="IsEnabled" Value="False"/>
</Style>
</ContextMenu.Resources>
<MenuItem Header="Command _1" />
<MenuItem Header="Command _2" />
<MenuItem Header="Command _3" />
<MenuItem Header="Command _4" />
</ContextMenu>
Должно быть, повторное включение не так забавно, как есть, но вы можете привязать значение в установщике к чему-то, к чему вы можете легко получить доступ.
Далее вы можете отключить меню на более высоком уровне:
<Rectangle Width="100"
Height="100"
Fill="Black"
ContextMenuService.IsEnabled="False">
<Rectangle.ContextMenu>
<ContextMenu>
<MenuItem Header="Command _1" />
<MenuItem Header="Command _2" />
<MenuItem Header="Command _3" />
<MenuItem Header="Command _4" />
</ContextMenu>
</Rectangle.ContextMenu>
</Rectangle>
Тогда он вообще не откроется.