同等の WPF を持たない ActiveX または Windows フォーム コントロールを使用しているため、当然 WindowsFormsHost を使用してこれらのコントロールをホストします。通常は、一般的な機能を実装するためのボタンなどの一般的なコントロールを使用して UserControl を作成します。xaml コードの一部は次のようなものです。
<WindowsFormsHost Name="windowsFormsHost1" >
<WindowsFormsHost.ContextMenu>
<ContextMenu>
<MenuItem Header="_Test1" />
</ContextMenu>
</WindowsFormsHost.ContextMenu>
<AxOWC:AxPivotTable x:Name="pivotTable" />
</WindowsFormsHost>
....
AxPivotTable は OWC (オフィス Web コンポーネント) コントロールです。別の UserControl では、WindowsFormsHost 内に ReportViewer を追加します。通常、追加した ContextMenu 項目がなくても、AxPivotTable または ReportViewer には既定のコンテキスト メニューがあることに注意してください。
これまでのところ、カスタマイズした ContextMenu はまだ表示されていません (まだデフォルトのものが表示されています)。この質問のおかげで、コード ビハインドとセットでマウス ダウン イベントをキャプチャする必要があることがわかりました。
windowsFormsHost1.ContextMenu.IsOpen = True
コンテキストメニューを表示します(奇妙ですが)。
今私の問題は、この Test1 ContextMenu だけが今ここにあるということです。デフォルトの ContextMenu は表示されなくなります。前述したように、これらの既定のコンテキスト メニューの上にカスタマイズされたものを追加する必要があります。